toshiki-notebook/docs/application/vitepress-plugin-shiki-twoslash/config/reference.md

133 lines
2.6 KiB
Markdown

---
description: 'You can configure Twoslash to change code example output.'
title: 'Config'
---
# Config
## Overview
You can configure VitePress Twoslash using the `twoslash` property added to `defineConfig`.
```ts twoslash
// .vitepress/config.[ext]
import { defineConfig } from 'vitepress'
import { withTwoslash, TwoslashConfigSettings } from '@andatoshiki/vitepress-plugin-shiki-twoslash'
export default withTwoslash(
defineConfig({
twoslash: {
// Your VitePress Twoslash options
},
})
)
```
::: info
In addition to the below config options, VitePress Twoslash also supports all [`shiki`](https://github.com/shikijs/shiki) `HighlighterOptions` and [`@typescript/twoslash`](https://github.com/microsoft/TypeScript-Website/tree/v2/packages/ts-twoslasher) `TwoSlashOptions`.
:::
## Options
### `addTryButton`
A way to turn on the try buttons seen on the TS website.
- **Type**: `boolean`
- **Default**: `false`
```ts
export default withTwoslash(
defineConfig({
twoslash: {
addTryButton: true, // [!code focus]
},
})
)
```
### `alwayRaiseForTwoslashExceptions`
Instead of showing twoslash exceptions inline, throw the entire process like it will on CI.
- **Type**: `boolean`
- **Default**: `false`
```ts
export default withTwoslash(
defineConfig({
twoslash: {
alwayRaiseForTwoslashExceptions: true, // [!code focus]
},
})
)
```
### `disableImplicitReactImport`
A way to disable implicit React imports on tsx/jsx language codeblocks
- **Type**: `boolean`
- **Default**: `false`
```ts
export default withTwoslash(
defineConfig({
twoslash: {
disableImplicitReactImport: true, // [!code focus]
},
})
)
```
### `includeJSDocInHover`
Include JSDoc comments in the hovers.
- **Type**: `boolean`
- **Default**: `false`
```ts
export default withTwoslash(
defineConfig({
twoslash: {
includeJSDocInHover: true, // [!code focus]
},
})
)
```
### `ignoreCodeblocksWithCodefenceMeta`
Ignore transforming certain code blocks.
- **Type**: `boolean`
- **Default**: `false`
```ts
export default withTwoslash(
defineConfig({
twoslash: {
ignoreCodeblocksWithCodefenceMeta: true, // [!code focus]
},
})
)
```
### `wrapFragments`
A way to add a div wrapper for multi-theme outputs.
- **Type**: `boolean`
- **Default**: `false`
```ts
export default withTwoslash(
defineConfig({
twoslash: {
wrapFragments: true, // [!code focus]
},
})
)
```