# Makefile

BUILDDIR      = _build
EXTRAS       ?= $(BUILDDIR)/extras

.PHONY: main clean

	@echo "Building main facility..."
	build_main $(BUILDDIR)

	rm -rf $(BUILDDIR)/*

language: ...

style: solarized-light

Get version 10.5.0





  1. Version 10.5.0


    • Add Subresource Integrity digest lists to cdn-assets Josh Goebel
    • R and VB.net grammars now ship in our default build (:common) Josh Goebel


    • add match as sugar for simple begin only matches (#2834) Josh Goebel
    • allow illegal to also be an array of regex (#2834) Josh Goebel
    • add compilerExtensions allows grammers to influence mode compilation (#2834) Josh Goebel
      • some internal pieces are now simple compiler extensions

    New Languages:

    • Added 3rd party Red & Rebol grammar to SUPPORTED_LANGUAGES (#2872) Oldes Huhuman

    Language grammar improvements:

    • enh(cpp): Support C++ pack expansion in function arguments Martin Dørum
    • enh(makefile): Add make as an alias (#2883) tripleee
    • enh(swift) Improved grammar for strings (#2819) Steven Van Impe
    • enh(swift) Grammar improvements (#2908) Steven Van Impe
      • New grammar for keywords and built-ins
      • Added support for operator highlighting
      • New grammar for attributes
      • Added support for quoted identifiers, implicit parameters, and property wrapper projections
      • Support for more complex expressions in string interpolation
    • enh(swift) Improved highlighting for types and generic arguments (#2920) Steven Van Impe
    • fix(http) avoid recursive sublanguage and tighten rules (#2893) Josh Goebel
    • fix(asciidoc): Handle section titles level 5 (#2868) Vaibhav Chanana
    • fix(asciidoc): Support unconstrained emphasis syntax (#2869) Guillaume Grossetie
    • enh(scheme) Allow [] for argument lists (#2913) Josh Goebel
    • enh(vb) Large rework of VB.net grammar (#2808) Jan Pilzer
      • Adds support for Date data types, see (#2775)
      • Adds support for REM comments and fixes ''' doctags (#2875) (#2851)
        • Custom number mode to support VB.net specific number flags
        • Hex (&H), Oct (&O), and binary (&B) prefixes
        • Separating digits with underscores: 90_946
      • Type suffixes: 123UI (unsigned integer)
      • Improves directives detection and adds support for Enable, Disable, and Then keywords
      • Adds more markup tests
    • fix(javascript) Empty block-comments break highlighting (#2896) Jan Pilzer
    • enh(dart) Fix empty block-comments from breaking highlighting (#2898) Jan Pilzer
    • enh(dart) Fix empty doc-comment eating next line Jan Pilzer
    • enh(asciidoc) Adds support for unconstrained bold syntax (#2869) Guillaume Grossetie
    • enh(c-like) Incorrect highlighting for interger suffix (#2919) Vaibhav Chanana
    • enh(properties) Correctly handle trailing backslash (#2922) Vaibhav Chanana

    Recent Deprecations:

    • HTML "merging" is deprecated. (#2873) Josh Goebel
      • HTML inside <pre> blocks will no longer be magically merged back into the highlighted code's HTML result - it will instead be silently removed.
      • Consider using a plugin if you truly need this functionality
      • Deprecated as of 10.5.0 - will be removed in v11.
    • tabReplace option deprecated. (#2873) Josh Goebel
      • Consider: Use the CSS tab-size property, or simply pre-process the text yourself before rendering the initial HTML
      • otherwise, use a plugin
      • Deprecated as of 10.5.0 - will be removed in v11.
    • useBR option deprecated. (#2559) Josh Goebel
      • Recommended: You really should just use the HTML <pre> tag
      • or perhaps try CSS white-space: pre;
      • otherwise, use a plugin
      • Deprecated as of 10.3.0 - will be removed in v11.
    • requireLanguage API is deprecated, will be removed in v11.0.
      • Consider: Use getLanguage (with custom error handling) or built-time dependencies.
      • See Library API for more information.
      • Deprecated as of 10.4.0 - will be removed in v11.
  2. Version 10.4.1


    • (fix) Exponential backtracking fixes for: Josh Goebel
      • cpp
      • handlebars
      • gams
      • perl
      • jboss-cli
      • r
      • erlang-repl
      • powershell
      • routeros
    • (fix) Polynomial backtracking fixes for: Josh Goebel
      • asciidoc
      • reasonml
      • latex
      • kotlin
      • gcode
      • d
      • aspectj
      • moonscript
      • coffeescript/livescript
      • csharp
      • scilab
      • crystal
      • elixir
      • basic
      • ebnf
      • ruby
      • fortran/irpf90
      • livecodeserver
      • yaml
      • x86asm
      • dsconfig
      • markdown
      • ruleslanguage
      • xquery
      • sqf

    Very grateful to Michael Schmidt for all the help.

  3. Version 10.4.0

    A largish release with many improvements and fixes from quite a few different contributors. Enjoy!


    • (chore) requireLanguage is deprecated.
      • Prefer getLanguage (with custom error handling) or built-time dependencies.
      • See Library API for more information.


    • enh(parser) use negative look-ahead for beginKeywords support (#2813) Josh Goebel
    • enh(grammars) allow classNameAliases for more complex grammars Josh Goebel
    • fix(vue): Language name now appears in CSS class (#2807) Michael Rush
    • (chore) Clean up all regexs to be UTF-8 compliant/ready (#2759) Josh Goebel

    New Languages:

    • Added 3rd party Chapel grammar to SUPPORTED_LANGUAGES (#2806) Brad Chamberlain
    • Added BBCode grammar to SUPPORTED_LANGUAGES (#2867) Paul Reid
    • enh(javascript) Added node-repl for Node.js REPL sessions (#2792) Marat Nagayev

    Language Improvements:

    • enh(shell) Recognize prompts which contain tilde ~ (#2859) Guillaume Grossetie
    • enh(shell) Add support for multiline commands with line continuation \ (#2861) Guillaume Grossetie
    • enh(autodetect) Over 30+ improvements to auto-detect (#2745) Josh Goebel
      • 4-5% improvement in auto-detect against large sample set
      • properties, angelscript, lsl, javascript, n1ql, ocaml, ruby
      • protobuf, hy, scheme, crystal, yaml, r, vbscript, groovy
      • python, java, php, lisp, matlab, clojure, csharp, css
    • fix(r) fixed keywords not properly spaced (#2852) Josh Goebel
    • fix(javascript) fix potential catastrophic backtracking (#2852) Josh Goebel
    • fix(livescript) fix potential catastrophic backtracking (#2852) Josh Goebel
    • bug(xml) XML grammar was far too imprecise/fuzzy Josh Goebel
    • enh(xml) Improve precision to prevent false auto-detect positives Josh Goebel
    • fix(js/ts) Prevent for/while/if/switch from falsly matching as functions (#2803) Josh Goebel
    • enh(julia) Update keyword lists for Julia 1.x (#2781) Fredrik Ekre
    • enh(python) Match numeric literals per the language reference Richard Gibson
    • enh(ruby) Match numeric literals per language documentation Richard Gibson
    • enh(javascript) Match numeric literals per ECMA-262 spec Richard Gibson
    • enh(java) Match numeric literals per Java Language Specification Richard Gibson
    • enh(swift) Match numeric literals per language reference Richard Gibson
    • enh(php) highlight variables (#2785) Taufik Nurrohman
    • fix(python) Handle comments on decorators (#2804) Jonathan Sharpe
    • enh(diff) improve highlighting of diff for git patches [Florian Bezdeka][]
    • fix(llvm) lots of small improvements and fixes (#2830) Josh Goebel
    • enh(mathematica) Rework entire implementation Patrick Scheibe
      • Correct matching of the many variations of Mathematica's numbers
      • Matching of named-characters aka special symbols like \[Gamma]
      • Updated list of version 12.1 built-in symbols
      • Matching of patterns, slots, message-names and braces
    • fix(swift) Handle keywords that start with # Marcus Ortiz
    • enh(swift) Match some keyword Marcus Ortiz
    • enh(swift) Match @main attribute Marcus Ortiz

    Dev Improvements:

    • chore(dev) add theme picker to the tools/developer tool (#2770) Josh Goebel
    • fix(dev) the Vue.js plugin no longer throws an exception when hljs is not in the global namespace Kyle Brown

    New themes:

  4. Version 10.3.2

    Tiny tiny release, just to fix the website incorrectly not listing Javascript in the list of languages you could choose for a custom build.

    • There are no other changes.
  5. Version 10.3.1

    Prior version let some look-behind regex sneak in, which does not work yet on Safari. This release removes those incompatible regexes.


    • fix(Safari) Remove currently unsupported look-behind regex (fix) Josh Goebel
  6. Version 10.3.0

    Language Improvements:

    • enh(latex) Complete ground up rewrite of LaTex grammar schtandard
    • fix(cpp) implement backslash line continuation in comments (#2757) Konrad Rudolph
    • fix(cpp) improve parsing issues with templates (#2752) Josh Goebel
    • enh(cpp) add support for enum (struct|class) and union (#2752) Josh Goebel
    • fix(js/ts) Fix nesting of {} inside template literals SUBST expression (#2748) Josh Goebel
    • enh(js/ts) Highlight class methods as functions (#2727) Josh Goebel
    • fix(js/ts) constructor is now highlighted as a function title (not keyword) (#2727) Josh Goebel
    • fix(c-like) preprocessor directives not detected after else (#2738) Josh Goebel
    • enh(javascript) allow # for private class fields (#2701) Chris Krycho
    • fix(js) prevent runaway regex (#2746) Josh Goebel
    • fix(bash) enh(bash) allow nested params (#2731) Josh Goebel
    • fix(python) Fix highlighting of keywords and strings (#2713, #2715) Konrad Rudolph
    • fix(fsharp) Prevent (*) from being detected as a multi-line comment Josh Goebel
    • enh(bash) add support for heredocs (#2684) Josh Goebel
    • enh(r) major overhaul of the R language grammar (and fix a few bugs) (#2680) Konrad Rudolph
    • enh(csharp) Add all C# 9 keywords, and other missing keywords (#2679) David Pine
    • enh(objectivec) Add objective-c++ and obj-c++ aliases for Objective-C Josh Goebel
    • enh(java) Add support for record (#2685) Josh Goebel
    • fix(csharp) prevent modifier keywords wrongly flagged as title (#2683) Josh Goebel
    • enh(axapta) Update keyword list for Axapta (X++) (#2686) Ryan Jonasson
    • fix(fortran) FORTRAN 77-style comments (#2677) Philipp Engel
    • fix(javascript) Comments inside params should be highlighted (#2702) Josh Goebel
    • fix(scala) Comments inside class header should be highlighted (#1559) Josh Goebel
    • fix(c-like) Correctly highlight modifiers (final) in class declaration (#2696) Josh Goebel
    • enh(angelscript) Improve heredocs, numbers, metadata blocks (#2724) Melissa Geels
    • enh(javascript) Implement Numeric Separators (#2617) Antoine du Hamel
    • enh(typescript) TypeScript also gains support for numeric separators (#2617) Antoine du Hamel
    • enh(php) Add support for PHP 8 match keyword and add php8 as an alias (#2733) Ayesh Karunaratne
    • fix(handlebars) Support if else keyboards (#2659) Tom Wallace


    • useBR option deprecated and will be removed in v11.0. (#2559) Josh Goebel
  7. Version 10.2.1

    Parser Engine:

    • fix(parser) complete fix for resuming matches from same index (#2678) Josh Goebel
  8. Version 10.2.0

    Parser Engine:

    • (fix) When ignoring a potential match highlighting can terminate early (#2649) Josh Goebel

    New themes:


    • fixMarkup is now deprecated and will be removed in v11.0. (#2534) Josh Goebel

    Big picture:

    • Add simple Vue plugin for basic use cases (#2544) Josh Goebel

    Language Improvements:

    • fix(bash) Fewer false positives for keywords in arguments (#2669) sirosen
    • fix(js) Prevent long series of /////// from causing freezes (#2656) Josh Goebel
    • enh(csharp) Add init and record keywords for C# 9.0 (#2660) Youssef Victor
    • enh(matlab) Add new R2019b arguments keyword and fix enumeration keyword (#2619) Andrew Janke
    • fix(kotlin) Remove very old keywords and update example code (#2623) kageru
    • fix(night) Prevent object prototypes method values from being returned in getLanguage (#2636) night
    • enh(java) Add support for enum, which will identify as a class now (#2643) ezksd
    • enh(nsis) Add support for NSIS 3.06 commands (#2653) idleberg
    • enh(php) detect newer more flexible HEREdoc syntax (#2658) eytienne
  9. Version 10.1.2


    • fix(night) Prevent object prototype values from being returned by getLanguage (#2636) night
  10. Version 10.1.1