npm.io
0.1.5 • Published 2 years agoCLI

irojs

Licence
MIT
Version
0.1.5
Deps
4
Size
205 kB
Vulns
0
Weekly
0

IroJS

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.

Installation

npm install irojs

Usage

From the command line

Basic syntax:

iro compile <source> --targets=<targetlist>

Available targets:

  • textmate or tm
    • textmate.xml (default)
    • textmate.json
  • ace
    • ace.js (default)
    • ace.json
  • ast — outputs the rion ast
  • all or * — matches all targets
  • none — only checks grammar

Use <target>.* to match all extensions.

Example:

iro compile mygrammar.iro --targets=textmate,ace -o out/

From code

Example:

import * as iro from "irojs";
// or
const iro = require("irojs");

const myGrammar = "...";

var result = iro.compile(myGrammar, { targets: ["textmate"] });

console.log(result.textmate);

Language Documentation

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

Development

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.

Roadmap

  • Online editor
  • VSCode extension (language server)
  • Styles to CSS
  • HighlightJS target
  • PrismJS target
  • CodeMirror target

Keywords