#1228

[highlights] 146 Shiki languages have no lexer (prisma, ini, dotenv, ansi, ...)

Openmaria-rcksopened 6d ago

NOTE

Written by claude-opus-5-5 on behalf of Maria

We're moving T3 Code's web highlighting from Shiki to @pierre/highlights through @pierre/diffs 1.6.1 (pingdotgg/t3code#23178), and mobile already uses it natively. It's 13-24x faster on our diffs and files. The one regression is languages Highlights has no lexer for. diffs maps them to text, so code blocks and files in those languages lose all color.

The ones we hit first are prisma, ini, dotenv and cobol, plus Shiki's special ansi language for terminal output. diffs' getFiletypeFromFileName also maps .prisma, .env, .ini, nginx.conf and others to these names, so whole files render plain in diffs too.

Below are all 146 Shiki 4.2.0 bundled languages for which isSupportedLanguage in @pierre/highlights 0.2.0 returns false for the id and every alias. ansi isn't in Shiki's bundle list, so it comes on top. We'd like to see these covered, or a supported way to plug in another highlighter for unsupported languages. diffs' one-highlighter-per-realm lock currently rules out falling back to diffs' own Shiki backend.

146 languages

abap, actionscript-3, ada, apache, apex, apl, applescript, ara, asciidoc, awk, ballerina, beancount, berry, bibtex, bicep, bird2, blade, bsl, cadence, cairo, clarity, cobol, codeowners, codeql, coffee, coq, crystal, csv (on main, unreleased), cue, cypher, d, dax, desktop, dotenv, dream-maker, edge, erb, fennel, fish, fluent, genie, gherkin, glimmer-js, glimmer-ts, gn, gnuplot, hack, haml, handlebars, haxe, hjson, html-derivative, http, hurl, hxml, hy, imba, ini, jinja, jison, jsonnet, jssm, just, kdl (#1222), kusto, lean, liquid, llvm, log, logo, luau, marko, mdc, mermaid, mipsasm, mojo, moonbit, move, narrat, nextflow, nextflow-groovy, nginx, nushell, odin (on main, unreleased), openscad, pkl, plsql, po, polar, postcss, powerquery, prisma, prolog, pug, puppet, purescript, qml, qmldir, qss, racket, raku, razor, reg, regexp, rel, riscv, ron, rosmsg, rst, sas, sdbl, shaderlab, smalltalk, soy, sparql, splunk, ssh-config, stata, stylus, surrealql, system-verilog, systemd, talonscript, tasl, tcl, templ, ts-tags, tsv (on main, unreleased), turtle, twig, typespec, typst, v, vala, verilog, vhdl, viml, vue-html, vue-vine, vyper, wenyan, wikitext, wit, wolfram, xsl, zenscript

How we computed it: for each entry in Shiki 4.2.0's bundledLanguagesInfo, we called isSupportedLanguage on its id and aliases. 89 of 235 are covered. We checked src/langs on main on 2026-10-25, and only csv, tsv and odin have landed since 0.2.0.

Activity

1
ije5d ago

thanks! working on add more languages support!