
# Opties

Alle toegangspunten (`codeToHtml`, `codeToTokens`, `codeToTokensResult`,
`codeToHast`) gebruiken dezelfde optiemap als tweede argument. Alleen `lang`
en een thema zijn verplicht.

## `lang`

**Verplicht.** De taal-id of alias waarmee de code wordt getokeniseerd — `php`, `ts`, `js`,
`rust`, `python`, `html` enzovoort. De speciale waarde `'ansi'` markeert
terminal-escape-sequenties in plaats van een grammatica te gebruiken (zie [ANSI](https://shikiphp.inline0.dev/nl/docs/ansi)).

```php
['lang' => 'php']
```

## `theme`

Eén thema-id. Verplicht tenzij `themes` is opgegeven.

```php
['lang' => 'php', 'theme' => 'github-dark']
```

## `themes`

Een toewijzing van sleutels aan thema-id's voor uitvoer met dubbele (of meerdere) thema's via CSS-variabelen.
Verplicht tenzij `theme` is opgegeven.

```php
['lang' => 'ts', 'themes' => ['light' => 'github-light', 'dark' => 'github-dark']]
```

## `defaultColor`

Welke sleutel in `themes` de inline standaardkleur wordt (de andere sleutels worden `--shiki-<key>`-variabelen van CSS). Standaard `'light'`. Stel in op `false` om alleen variabelen te genereren en geen inline standaardkleur — handig als u alle kleuren zelf beheert met CSS.

```php
['themes' => ['light' => '…', 'dark' => '…'], 'defaultColor' => 'dark']
```

## `transformers`

Een lijst van `Shikiphp\Transformer\Transformer`-objecten die via de pipeline worden toegepast. Zie [Transformers](https://shikiphp.inline0.dev/nl/docs/transformers).

```php
use Shikiphp\Transformer\Notation\NotationHighlight;

['transformers' => [new NotationHighlight()]]
```

## `decorations`

Pas klassen of attributen toe op willekeurige bereiken van de broncode, op basis van regel- en tekenpositie. Elke decoratie is `{start, end, properties}`, waarbij posities `{line, character}` zijn (nulgebaseerd).

```php
['decorations' => [
    [
        'start'      => ['line' => 0, 'character' => 0],
        'end'        => ['line' => 0, 'character' => 5],
        'properties' => ['class' => 'highlight'],
    ],
]]
```

## `colorReplacements`

Vervang kleuren in de uitvoer. Tekenreeksvermeldingen vervangen een kleur overal; geneste vermeldingen die op themanaam zijn gegroepeerd gelden alleen voor dat thema.

```php
['colorReplacements' => [
    '#ffffff'      => '#f8f8f2',          // global
    'github-dark'  => ['#24292e' => '#000'], // only in github-dark
]]
```

## `structure`

`'classic'` (standaard) genereert de volledige `pre > code > span.line > span`-structuur.
`'inline'` genereert alleen de tokenspans met regeleinden, zonder omhullende
`pre`/`code` — handig voor inlinefragmenten.

```php
['structure' => 'inline']
```

## `tabindex`

Het kenmerk `tabindex` op het `<pre>`-element. Standaard `0`. Geef `false` mee
om het weg te laten.

```php
['tabindex' => false]
```

## `cssVariablePrefix`

Het voorvoegsel voor variabelen van dubbele thema's in CSS. Standaard `'--shiki-'`.

```php
['cssVariablePrefix' => '--my-']
```

## `mergeWhitespaces`

Bepaalt hoe witruimtetokens worden verwerkt. `true` (standaard) voegt tokens die alleen uit witruimte bestaan samen met het volgende token; `'never'` splitst de witruimte aan het begin en einde van elk token op in afzonderlijke tokens; `false` laat tokens ongemoeid.

```php
['mergeWhitespaces' => 'never']
```

## `tokenizeMaxLineLength`

Sla het tokeniseren over (en genereer één platte token voor) elke regel met deze lengte of langer, uitgedrukt in UTF-16-code-eenheden. Standaard is er geen limiet. Dit beschermt tegen pathologische invoer op één regel.

```php
['tokenizeMaxLineLength' => 1000]
```

## `meta`

Willekeurige metadata die via de context van de transformer wordt doorgegeven aan transformers — bijvoorbeeld de metatekst van een codeblok, die wordt gebruikt door
[`MetaHighlight`](https://shikiphp.inline0.dev/nl/docs/transformers#metahighlight) en
[`MetaWordHighlight`](https://shikiphp.inline0.dev/nl/docs/transformers#metawordhighlight).

```php
['meta' => ['__raw' => '{1,3-5}']]
```

## `grammarState`

Een `Shikiphp\GrammarState` (vanuit `getLastGrammarState`) om het tokeniseren te hervatten vanaf die positie. De meegedragen `lang` en theme(s) moeten overeenkomen. Zie [`getLastGrammarState`](https://shikiphp.inline0.dev/nl/docs/api#shikiphpgetlastgrammarstate).
