
# Indstillinger

Alle indgangspunkterne (`codeToHtml`, `codeToTokens`, `codeToTokensResult`,
`codeToHast`) tager det samme indstillingsarray som deres andet argument. Kun `lang`
og et tema er påkrævet.

## `lang`

**Påkrævet.** Sprogets id eller alias, der skal tokeniseres med — `php`, `ts`, `js`,
`rust`, `python`, `html` osv. Specialværdien `'ansi'` fremhæver
terminalens escape-sekvenser i stedet for at bruge en grammatik (se [ANSI](https://shikiphp.inline0.dev/da/docs/ansi)).

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

## `theme`

Et enkelt tema-id. Påkrævet, medmindre `themes` er angivet.

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

## `themes`

Et kort over nøgler til tema-id'er til output med to (eller flere) temaer via variabler i CSS.
Påkrævet, medmindre `theme` er angivet.

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

## `defaultColor`

Hvilken nøgle i `themes` der bliver den indlejrede standardfarve (de andre bliver til
variabler i `--shiki-<key>` CSS). Standardværdien er `'light'`. Sæt den til `false` for kun at udsende
variabler og ingen indlejret standardfarve — praktisk, når du styrer alle farver fra
CSS.

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

## `transformers`

En liste over `Shikiphp\Transformer\Transformer`-objekter, der anvendes gennem
forløbet. Se [Transformere](https://shikiphp.inline0.dev/da/docs/transformers).

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

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

## `decorations`

Anvend klasser eller attributter på vilkårlige områder af kilden efter linje-/tegnposition.
Hver dekoration er `{start, end, properties}`, hvor positionerne er
`{line, character}` (nulbaserede).

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

## `colorReplacements`

Tilknyt farverne i outputtet på ny. Strengværdier erstatter en farve globalt; indlejrede
værdier med temanavn som nøgle gælder kun for det pågældende tema.

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

## `structure`

`'classic'` (standard) udsender den fulde struktur `pre > code > span.line > span`.
`'inline'` udsender kun tokenområderne med linjeskift uden indpakning
`pre`/`code` — nyttigt til indlejrede kodeeksempler.

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

## `tabindex`

Attributten `tabindex` på elementet `<pre>`. Standardværdien er `0`. Angiv `false`
for at udelade den.

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

## `cssVariablePrefix`

Præfikset, der bruges til variabler i CSS med to temaer. Standardværdien er `'--shiki-'`.

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

## `mergeWhitespaces`

Styrer håndteringen af mellemrumstokens. `true` (standard) føjer tokens, der kun indeholder mellemrum,
til det følgende token; `'never'` opdeler hvert tokens indledende og
afsluttende mellemrum i selvstændige tokens; `false` lader tokens være urørte.

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

## `tokenizeMaxLineLength`

Spring tokeniseringen over (og udsend ét almindeligt token for) enhver linje, der har mindst denne
længde, målt i UTF-16-kodeenheder. Ingen grænse som standard. Beskytter mod patologiske
input på én linje.

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

## `meta`

Vilkårlige metadata, der videregives til transformere via transformerens kontekst —
for eksempel kodehegnets metastreng, der bruges af
[`MetaHighlight`](https://shikiphp.inline0.dev/da/docs/transformers#metahighlight) og
[`MetaWordHighlight`](https://shikiphp.inline0.dev/da/docs/transformers#metawordhighlight).

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

## `grammarState`

En `Shikiphp\GrammarState` (fra `getLastGrammarState`), som tokeniseringen kan fortsætte fra.
De medbragte `lang` og theme(s) skal stemme overens. Se
[`getLastGrammarState`](https://shikiphp.inline0.dev/da/docs/api#shikiphpgetlastgrammarstate).
