0.10.0 (2026-09-29)
Bug Fixes
- stop logging a warning for a missing parser - #1546
- configure the parser store on first use - #1557
- BREAKING: render HTML lines as inline spans with overridable layout CSS - #1559
- compose annotations in highlight events - #1578
Code Refactoring
- BREAKING: check parser bytes only where Lumis downloads them - #1627
Documentation
Features
- add Lumis.highlight_events/3 - #1543
- recognize 16 more code fence labels - #1553
- allow generating CSS without line layout - #1566
- add an inline structure to the HTML formatters - #1568
- update generated themes - #1608
Testing
- pin top-level API parity across runtimes with a manifest - #1547
- cover CRLF endings split across highlight events - #1580
0.9.1 (2026-09-25)
Bug Fixes
- highlight plain text when a parser is not installed - #1541
0.9.0 (2026-09-24)
This release no longer auto loads the languages (parsers) used to syntax highlight code.
You need to install the languages or bundles you want otherwise you won't see any color applied.
Example:
# mix.exs
{:lumis, "~> 0.9"},
{:lumis_wasm_javascript, "~> 0.26"},
{:lumis_wasm_bundle_backend, "~> 0.1"}See https://docs.lumis.sh/reference/languages and https://docs.lumis.sh/languages for more info.
Bug Fixes
- reject a hex colour that is only partly hex - #1394
- BREAKING: preserve source line endings across runtimes - #1410
- track patched NIF dependencies - #1434
- bound the query match limit so capture iteration stays linear, and make it configurable - #1425 by @ericmj
- keep light-dark() to the colors it can express - #1444
- BREAKING: return an exception from Lumis.highlight/2 instead of a string - #1499
- BREAKING: report a full Wasm store as its own parser failure - #1507
Code Refactoring
- BREAKING: re-export lumis-core's formatters from lumis - #1387
- BREAKING: inline annotation event fields - #1441
- BREAKING: nest the render limits under one budget option - #1526
Documentation
- migrate documentation to Fumadocs - #1445
- say how a lock reaches a release - #1483
- say the generated Dockerfile needs no changes - #1497
- update parser package npm and hex templates - #1498
Features
- update generated themes - #1358
- add Token themes - #1365
- BREAKING: introduce annotations - #1100
- HTML formatter helpers - #1377
- ANSI formatter helpers - #1388
- export the same helpers across runtimes - #1396
- BREAKING: render line highlighting as built-in decoration events - #1398
- BREAKING: render line numbers from the line decoration - #1411
- theme line number gutters - #1431
- support HTML tag attributes - #1436
- expose rainbow brackets as decorations - #1439
- manage and enforce lumis-lock.toml with mix lumis.* - #1479
- bound a render with a time limit - #1478
- rename the cache verb to download - #1481
- BREAKING: parsers from Hex deps - #1486
- BREAKING: load only installed parsers - #1489
- BREAKING: remove the runtime parser download from the Elixir and Node libraries - #1510
Performance
- coalesce same-scope highlight spans - #1459
Testing
- stress testing across runtimes - #1446
0.8.0 (2026-09-03)
Code Refactoring
- keep one copy of each test parser - #1288
Documentation
Features
- highlight code inside diff hunks - #1284
- update generated themes - #1293
- name the highlight options in every runtime - #1289
- update generated themes - #1307
- BREAKING: require Elixir 1.15 - #1338
- update generated themes - #1343
0.7.0 (2026-08-13)
Bug Fixes
- BREAKING: align the default theme on none across runtimes - #1142
- pin lumis crate requirements to the workspace version - #1140
- highlight lines in light-dark() mode - #1260
- resolve compatible WASM package versions - #1263
- resolve one data directory across every runtime - #1264
- align the public API across Rust, the CLI, Elixir and JavaScript - #1266
Documentation
Features
- update generated themes - #1122
- unify dynamic WASM language loading - #1099
- BREAKING: one vocabulary for the language and theme catalog, in every runtime - #1269
- mirror precompiled NIFs to Cloudflare R2 - #1270
- warm-up parsers - #1273
Performance
- prepare large parser bundles concurrently - #1271
Breaking changes
Load languages on-demand
No changes are required but it's recommended to warm-up parsers to avoid slow first requests.
See https://lumis.hexdocs.pm/deployment.html
Removed default onedark theme
Add theme: "onedark" to :html_inline and :terminal to keep old colors.
Align Theme and Language APIs
- Replace
Lumis.available_languages()["elixir"]withLumis.Languages.get("elixir"). - Get theme names with
Enum.map(Lumis.available_themes(), & &1.name).
0.6.3 (2026-07-23)
Bug Fixes
- prevent query capture list pool overflow on large inputs - #1028 by @ericmj
- keep Elixir NIF lockfile portable - #1029
- haskell heap corruption on aarch64-linux - #1086 by @ericmj
0.6.2 (2026-07-08)
Features
0.6.1 (2026-07-03)
Bug Fixes
0.6.0 (2026-06-12)
⚠ BREAKING CHANGES
- adopt the
l-prefix on token class #952
Bug Fixes
- use vim.pack to update themes - #751
- fix build for glimmer and fortran
Features
0.5.0 (2026-04-22)
Bug Fixes
- remove stale gleam query node name causing
QueryError- #718 by @stefanobaghino
Features
- terminal: add bg color and width options - #713 by @Gazler
- terminal: add background theme option - #723
0.4.0 (2026-04-18)
Bug Fixes
- BREAKING: rename
formatter->formatters- #678
Documentation
- elixir examples
- move runnable examples into package dirs - #709
Features
- align
lang->languagenames - #591
0.3.0 (2026-04-05)
Features
Code Refactoring
Code Refactoring
0.2.0 (2026-04-02)
⚠ BREAKING CHANGES
- bump tree-sitter 0.26 (#521)
Features
- add 135 themes (#483) (26b9d84)
- add 42 new languages (#467) (9bacc46)
- add bbcode_scoped formatter to Elixir and Javascript (#478) (1a34357)
Bug Fixes
- include unnamed children in range (#430) (782bfaa)
- isolate elixir nif from rust release workspace (#528) (da1c6d1)
Miscellaneous Chores
0.1.2 - 2026-03-04
Fixed
- Use published
lumiscrate
0.1.1 - 2026-02-19
Changed
- Add language nushell (started by @c4lliope)
- Rename CSS class from
athltolumisfor consistency with the project name - Rename CSS class from
athl-themestolumis-themesfor multi-theme formatter - Change default CSS variable prefix from
--athlto--lumis
0.1.0 - 2026-01-27
First release of lumis, a renamed version of the autumn package.
Migration from autumn
Update your mix.exs:
# Before
{:autumn, "~> 0.6"}
# After
{:lumis, "~> 0.1"}Update your imports:
# Before
alias Autumn
alias Autumn.Theme
# After
alias Lumis
alias Lumis.Theme