Download the PHP package mbolli/tempest-highlight-ron without Composer
On this page you can find all versions of the php package mbolli/tempest-highlight-ron. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download mbolli/tempest-highlight-ron
More information about mbolli/tempest-highlight-ron
Files in mbolli/tempest-highlight-ron
Package tempest-highlight-ron
Short Description RON (Readable Object Notation) language support for tempest/highlight — parser-backed, role-aware highlighting of keys, values, numbers, literals, and structure.
License MIT
Informations about the package tempest-highlight-ron
tempest-highlight-ron
RON (Readable Object Notation) language support for tempest/highlight.
Unlike a regex grammar, this plugin tokenizes with the real RON parser
(mbolli/php-ron), so highlighting is byte-exact and
context-aware: keys are distinguished from values even though RON has no :/= separator,
and repeated-quote strings (''''', ""a "quoted" phrase"") are spanned correctly.
Installation
Usage
Registering the language as ron also highlights fenced ` ron
users [
{id 100 name Ada roles [admin writer] active true}
]
settings {retry {max 3} tags [llm json]}
| RON construct | Role | tempest token | CSS class |
|-------------------------------------------------|-------------|---------------|----------------|
| `{` `}` `[` `]` | punctuation | `PROPERTY` | `hl-property` |
| object keys (bare/quoted, elided or braced) | key | `KEYWORD` | `hl-keyword` |
| string values (bare, quoted, repeated-quote) | string | `VALUE` | `hl-value` |
| numbers (`100`, `-12.5e+2`) | number | `NUMBER` | `hl-number` |
| `true` / `false` / `null` | literal | `LITERAL` | `hl-literal` |
Because classification comes from the parser, `'true'` (quoted) is a string, a key named
`true` is a key, and a bare `123` in key position stays a key — none are mis-coloured.
## How it works
`RonLanguage` adds five `Pattern`s on top of tempest's base language. Each delegates to
`Mbolli\Ron\Ron::tokenize()`, which returns role-aware source spans; the spans are handed to
tempest in `PREG_OFFSET_CAPTURE` shape. Tokenization is memoized per content string, so the
source is lexed once per parse regardless of how many patterns run. `Ron::tokenize()` is
lenient — malformed RON never throws, it just highlights as much as it can classify.
## License
MIT