A grammar generator for syntax highlighters.
This project aims to be a superset of Chris Ainsley's Iro, a development tool designed to simplify the creation of syntax highlighters.
npm install irojs
Basic syntax:
iro compile <source> --targets=<targetlist>
Available targets:
textmate
ortm
textmate.xml
(default)textmate.json
ace
ace.js
(default)ace.json
ast
— outputs the rion astall
or*
— matches all targetsnone
— only checks grammar
Use <target>.*
to match all extensions.
Example:
iro compile mygrammar.iro --targets=textmate,ace -o out/
Example:
import * as iro from "irojs";
// or
const iro = require("irojs");
const myGrammar = "...";
var result = iro.compile(myGrammar, { targets: ["textmate"] });
console.log(result.textmate);
The documentation is still a WIP. In the meanwhile, you can access the original docs at https://web.archive.org/web/20191007073218/https://eeyo.io/iro/documentation/index.html
pnpm build
→ builds the package.
pnpm build:swc
→ compiles the typescript source.
pnpm build:rion
→ compiles the rion grammar.
pnpm build:type
→ generates the type definition files.
- Online editor
- VSCode extension (language server)
- Styles to CSS
- HighlightJS target
- PrismJS target
- CodeMirror target