An open API service indexing awesome lists of open source software.

https://github.com/TheFireBlast/irojs

A grammar generator for syntax highlighters.
https://github.com/TheFireBlast/irojs

compiler javascript syntax-highlighting

Last synced: about 2 months ago
JSON representation

A grammar generator for syntax highlighters.

Awesome Lists containing this project

README

          

IroJS


A grammar generator for syntax highlighters.



This project aims to be a superset of Chris Ainsley's [Iro](https://eeyo.io/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 --targets=
```

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 `.*` to match all extensions.

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

## From code

Example:
```js
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