
# Alternativ

Alla ingångar (`codeToHtml`, `codeToTokens`, `codeToTokensResult`,
`codeToHast`) tar samma alternativarray som sitt andra argument. Endast `lang`
och ett tema krävs.

## `lang`

**Obligatoriskt.** Språkets id eller alias att tokenisera med — `php`, `ts`, `js`,
`rust`, `python`, `html` och så vidare. Det särskilda värdet `'ansi'` markerar
terminalens escape-sekvenser i stället för att använda en grammatik (se [ANSI](https://shikiphp.inline0.dev/sv/docs/ansi)).

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

## `theme`

Ett enskilt tema-id. Krävs om inte `themes` anges.

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

## `themes`

En mappning från nycklar till tema-id:n för utdata med dubbla (eller flera) teman via variablerna CSS.
Krävs om inte `theme` anges.

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

## `defaultColor`

Vilken nyckel i `themes` som blir den inbyggda standardfärgen (de andra blir
`--shiki-<key>` CSS-variabler). Standardvärdet är `'light'`. Ange `false` för att endast
skapa variabler utan inbyggd standardfärg — praktiskt när du styr alla färger från
CSS.

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

## `transformers`

En lista med `Shikiphp\Transformer\Transformer`-objekt som tillämpas genom
flödet. Se [Transformers](https://shikiphp.inline0.dev/sv/docs/transformers).

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

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

## `decorations`

Tillämpa klasser eller attribut på valfria intervall i källan med hjälp av rad- och teckenpositioner. Varje dekoration är `{start, end, properties}`, där positionerna är
`{line, character}` (nollbaserade).

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

## `colorReplacements`

Mappa om färgerna i utdata. Strängvärden ersätter en färg globalt; nästlade
värden med temats namn som nyckel gäller endast det temat.

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

## `structure`

`'classic'` (standard) skapar hela strukturen `pre > code > span.line > span`.
`'inline'` skapar endast tokenintervallen med radbrytningar, utan omslutande
`pre`/`code` — användbart för infogade kodsnuttar.

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

## `tabindex`

Attributet `tabindex` på elementet `<pre>`. Standardvärdet är `0`. Ange `false`
för att utelämna det.

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

## `cssVariablePrefix`

Prefixet som används för variabler för dubbla teman, CSS. Standardvärdet är `'--shiki-'`.

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

## `mergeWhitespaces`

Styr hanteringen av blankteckentoken. `true` (standard) slår ihop token som bara innehåller blanktecken med nästa token; `'never'` delar upp inledande och
avslutande blanktecken i varje token till fristående token; `false` lämnar token orörda.

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

## `tokenizeMaxLineLength`

Hoppa över tokenisering (och skapa en enda vanlig token för) alla rader som är minst så här
långa, mätt i UTF-16-kodenheter. Standardvärdet är ingen gräns. Skydd mot orimligt långa
rader med en enda radbrytning.

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

## `meta`

Valfria metadata som skickas vidare till transformers via transformer-kontexten —
till exempel metadata för kodstängslet som används av
[`MetaHighlight`](https://shikiphp.inline0.dev/sv/docs/transformers#metahighlight) och
[`MetaWordHighlight`](https://shikiphp.inline0.dev/sv/docs/transformers#metawordhighlight).

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

## `grammarState`

En `Shikiphp\GrammarState` (från `getLastGrammarState`) för att återuppta tokeniseringen
från. Det medföljande `lang` och theme(s) måste stämma överens. Se
[`getLastGrammarState`](https://shikiphp.inline0.dev/sv/docs/api#shikiphpgetlastgrammarstate).
