
# Opcijas

Visi ieejas punkti (`codeToHtml`, `codeToTokens`, `codeToTokensResult`,
`codeToHast`) kā otro argumentu pieņem vienu un to pašu opciju masīvu. Obligāti ir tikai `lang`
un motīvs.

## `lang`

**Obligāti.** Valodas ID vai aizstājvārds, ar ko veikt tokenizāciju — `php`, `ts`, `js`,
`rust`, `python`, `html` un tā tālāk. Īpašā vērtība `'ansi'` izceļ
termināļa vadības sekvences, neizmantojot gramatiku (skatiet [ANSI](https://shikiphp.inline0.dev/lv/docs/ansi)).

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

## `theme`

Viena motīva ID. Obligāti, ja vien nav norādīts `themes`.

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

## `themes`

Motīvu ID atbilstības karte divu (vai vairāku) motīvu izvadei, izmantojot CSS mainīgos.
Obligāti, ja vien nav norādīts `theme`.

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

## `defaultColor`

Kura atslēga no `themes` kļūst par noklusējuma krāsu iekļautajā stilā (pārējās kļūst par
`--shiki-<key>` CSS mainīgajiem). Pēc noklusējuma — `'light'`. Iestatiet `false`, lai izvadītu
tikai mainīgos bez noklusējuma krāsas iekļautajā stilā — noderīgi, ja visas krāsas kontrolējat no
CSS.

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

## `transformers`

Caur konveijeru lietotu `Shikiphp\Transformer\Transformer` objektu saraksts. Skatiet
[Pārveidotāji](https://shikiphp.inline0.dev/lv/docs/transformers).

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

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

## `decorations`

Pievienojiet klases vai atribūtus patvaļīgiem avota diapazoniem, norādot rindu un rakstzīmju
pozīcijas. Katra dekorācija ir `{start, end, properties}`, kur pozīcijas ir
`{line, character}` (skaitīšana sākas no nulles).

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

## `colorReplacements`

Pārveidojiet izvades krāsas. Virsējā līmeņa virknes aizstāj krāsu visur; ligzdotas
atbilstības pēc motīva nosaukuma ietekmē tikai attiecīgo motīvu.

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

## `structure`

`'classic'` (pēc noklusējuma) izvada pilnu `pre > code > span.line > span` struktūru.
`'inline'` izvada tikai tokenu span elementus ar rindu pārtraukumiem, bez ietverošā
`pre`/`code` — noderīgi iekļautiem fragmentiem.

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

## `tabindex`

`<pre>` elementa atribūts `tabindex`. Pēc noklusējuma — `0`. Norādiet `false`,
lai to izlaistu.

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

## `cssVariablePrefix`

Prefikss, ko izmanto divu motīvu CSS mainīgajiem. Pēc noklusējuma — `'--shiki-'`.

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

## `mergeWhitespaces`

Kontrolē atstarpju tokenu apstrādi. `true` (pēc noklusējuma) iekļauj tikai atstarpju
tokenus nākamajā tokenā; `'never'` sadala katra tokena sākuma un beigu atstarpes atsevišķos tokenos; `false` atstāj tokenus nemainītus.

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

## `tokenizeMaxLineLength`

Netokenizējiet rindu, kas sasniedz vai pārsniedz šo garumu (tās vietā izvadiet vienu vienkāršu tokenu); garums norādīts UTF-16 koda vienībās. Pēc noklusējuma ierobežojuma nav. Aizsardzība pret patoloģiski garām vienas rindas ievadēm.

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

## `meta`

Patvaļīgi metadati, kas caur transformatora kontekstu tiek nodoti pārveidotājiem —
piemēram, koda bloka meta virkne, ko izmanto
[`MetaHighlight`](https://shikiphp.inline0.dev/lv/docs/transformers#metahighlight) un
[`MetaWordHighlight`](https://shikiphp.inline0.dev/lv/docs/transformers#metawordhighlight).

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

## `grammarState`

`Shikiphp\GrammarState` (no `getLastGrammarState`), lai atsāktu tokenizāciju
no šīs vietas. Pārnestajām `lang` un theme(s) ir jāsakrīt. Skatiet
[`getLastGrammarState`](https://shikiphp.inline0.dev/lv/docs/api#shikiphpgetlastgrammarstate).
