
# Beállítások

Minden belépési pont (`codeToHtml`, `codeToTokens`, `codeToTokensResult`, `codeToHast`) ugyanazt a beállításokat tartalmazó tömböt várja második argumentumként. Csak a `lang` és egy téma megadása kötelező.

## `lang`

**Kötelező.** A tokenizáláshoz használt nyelvazonosító vagy alias — `php`, `ts`, `js`, `rust`, `python`, `html` és így tovább. A speciális `'ansi'` érték nyelvtan helyett a terminál escape-szekvenciáit emeli ki (lásd: [ANSI](https://shikiphp.inline0.dev/hu/docs/ansi)).

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

## `theme`

Egyetlen témaazonosító. Kötelező, kivéve ha megadja a `themes` értékét.

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

## `themes`

Témaazonosítókhoz rendelt kulcsok leképezése kettős (vagy többszörös) téma kimenetéhez, CSS változókon keresztül. Kötelező, kivéve ha megadja a `theme` értékét.

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

## `defaultColor`

Az `themes` melyik kulcsa legyen a közvetlen alapértelmezett szín (a többi `--shiki-<key>` CSS változóvá válik). Alapértelmezése: `'light'`. A csak változók kibocsátásához, közvetlen alapértelmezés nélkül állítsa `false` értékre — hasznos, ha minden színt innen szabályoz: CSS.

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

## `transformers`

A folyamaton keresztül alkalmazott `Shikiphp\Transformer\Transformer` objektumok listája. Lásd: [Transzformátorok](https://shikiphp.inline0.dev/hu/docs/transformers).

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

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

## `decorations`

Osztályok vagy attribútumok alkalmazása a forrás tetszőleges tartományaira sor- és karakterpozíció alapján. Minden díszítés egy `{start, end, properties}`, ahol a pozíciók `{line, character}` (nullától indexelve).

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

## `colorReplacements`

A kimenet színeinek leképezése. A karakterlánc-bejegyzések globálisan cserélnek le egy színt; a témanév szerint csoportosított beágyazott bejegyzések csak az adott témára érvényesek.

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

## `structure`

A `'classic'` (alapértelmezés) a teljes `pre > code > span.line > span` struktúrát bocsátja ki.
A `'inline'` csak a sortörésekkel elválasztott tokenrészeket adja vissza, burkoló `pre`/`code` nélkül — hasznos soron belüli kódrészletekhez.

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

## `tabindex`

A `<pre>` elem `tabindex` attribútuma. Alapértelmezése: `0`. A kihagyásához adja meg a `false` értéket.

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

## `cssVariablePrefix`

A kettős témák CSS változóihoz használt előtag. Alapértelmezése: `'--shiki-'`.

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

## `mergeWhitespaces`

A szóközöket tartalmazó tokenek kezelését szabályozza. A `true` (alapértelmezés) a csak szóközökből álló tokeneket a következő tokenbe olvasztja; a `'never'` a tokenek kezdő és záró szóközeit különálló tokenekre bontja; a `false` változatlanul hagyja a tokeneket.

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

## `tokenizeMaxLineLength`

Az adott hosszúságú vagy annál hosszabb sorok tokenizálásának kihagyása; helyettük egyetlen egyszerű tokent bocsát ki. A hossz UTF-16 kódegységekben értendő. Alapértelmezés szerint nincs korlát. Védelmet nyújt a kórosan hosszú, egysoros bemenetek ellen.

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

## `meta`

Tetszőleges metaadat, amely a transzformátorokhoz a transzformátorkörnyezeten keresztül jut el — például a kódfence meta-karakterlánca, amelyet ezek használnak: [`MetaHighlight`](https://shikiphp.inline0.dev/hu/docs/transformers#metahighlight) és [`MetaWordHighlight`](https://shikiphp.inline0.dev/hu/docs/transformers#metawordhighlight).

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

## `grammarState`

Egy `Shikiphp\GrammarState` (a `getLastGrammarState` csomagból), amelytől folytatódik a tokenizálás. A továbbvitt `lang` és theme(s) értékének egyeznie kell. Lásd: [`getLastGrammarState`](https://shikiphp.inline0.dev/hu/docs/api#shikiphpgetlastgrammarstate).
