# FDocumentCode

- Human documentation: [https://docs.univer.ai/reference/facade/document-code](https://docs.univer.ai/reference/facade/document-code)

- Agent Markdown: [https://docs.univer.ai/reference/facade/document-code.md](https://docs.univer.ai/reference/facade/document-code.md)

- Requested language: `en-US`

- Content language: `en-US`

- Documentation version: `1.0.0-rc.0`

- Source: [facade/document-code.mdx](https://github.com/dream-num/documentation/blob/dev/content/reference/facade/document-code.mdx)

---

Facade object for a single docs code block.

## Access

Access through:

* [`FDocument.getCodes()`](https://docs.univer.ai/reference/facade/document.md#getcodes)
* [`FDocument.getCode()`](https://docs.univer.ai/reference/facade/document.md#getcode)
* [`FDocument.getCodeAt()`](https://docs.univer.ai/reference/facade/document.md#getcodeat)
* [`FDocument.findCodeByText()`](https://docs.univer.ai/reference/facade/document.md#findcodebytext)
* [`FDocument.findCodes()`](https://docs.univer.ai/reference/facade/document.md#findcodes)
* [`FDocument.insertCode()`](https://docs.univer.ai/reference/facade/document.md#insertcode)

## Example

```ts
const fDocument = univerAPI.getActiveDocument()
const codes = fDocument.getCodes()
console.log(codes)

const code = fDocument.findCodeByText('function')
console.log(code?.getText())
console.log(code?.getConfig())

code?.updateConfig({ language: 'javascript', lineNumbers: true })
console.log(code?.describe())

code?.unwrap()
code?.remove()
```

## Setup

Register [`@univerjs-pro/docs-code`](https://docs.univer.ai/reference/packages/plugins/univerjs-pro/docs-code.md) or a preset that includes it. In plugin mode, import `@univerjs-pro/docs-code/facade`. Additional methods below require their listed plugin packages. See [Facade setup](https://docs.univer.ai/guides/docs/getting-started/facade.md).

## `@univerjs-pro/docs-code`

### `FDocumentCode.describe`

Returns an agent-friendly description of the code.

```typescript
describe(): IDocsCodeInfo | null
```

**Returns**

The code id, range, and text, or `null` if it no longer exists.

**Examples**

```ts
const fDocument = univerAPI.getActiveDocument()
const code = fDocument.findCodeByText('function')

if (code) {
  console.log(code.describe())
}
```

**Types:** [`IDocsCodeInfo`](https://unpkg.com/@univerjs-pro/docs-code@1.0.0-rc.0/lib/types/facade/types.d.ts)

**Package:** [`@univerjs-pro/docs-code`](https://docs.univer.ai/reference/packages/plugins/univerjs-pro/docs-code.md) · [Type definitions](https://unpkg.com/@univerjs-pro/docs-code@1.0.0-rc.0/lib/types/facade/f-document-code.d.ts)

### `FDocumentCode.getConfig`

Returns the code block configuration.

```typescript
getConfig(): IDocsCodeConfig
```

**Returns**

Language, wrapping, line number, and tab-size settings.

**Examples**

```ts
const fDocument = univerAPI.getActiveDocument()
const code = fDocument.findCodeByText('function')

if (code) {
  console.log(code.getConfig())
}
```

**Types:** [`IDocsCodeConfig`](https://unpkg.com/@univerjs-pro/docs-code@1.0.0-rc.0/lib/types/common/type.d.ts)

**Package:** [`@univerjs-pro/docs-code`](https://docs.univer.ai/reference/packages/plugins/univerjs-pro/docs-code.md) · [Type definitions](https://unpkg.com/@univerjs-pro/docs-code@1.0.0-rc.0/lib/types/facade/f-document-code.d.ts)

### `FDocumentCode.getId`

Returns the code block id.

```typescript
getId(): string
```

**Returns**

The code block range id.

**Examples**

const fDocument = univerAPI.getActiveDocument();
const codes = fDocument.getCodes();

// Get the id of the first code block.
if (codes.length > 0) \{
const code = codes\[0];
console.log(code.getId());
}

````

**Package:** [`@univerjs-pro/docs-code`](https://docs.univer.ai/reference/packages/plugins/univerjs-pro/docs-code.md) · [Type definitions](https://unpkg.com/@univerjs-pro/docs-code@1.0.0-rc.0/lib/types/facade/f-document-code.d.ts)

### `FDocumentCode.getRange` [#getrange]

Returns the code block range in the document data stream.

```typescript
getRange(): IDocsCodeRange | null
````

**Returns**

The code range, or `null` if it no longer exists.

**Examples**

const fDocument = univerAPI.getActiveDocument();
const codes = fDocument.getCodes();

// Get the range of the first code block.
if (codes.length > 0) \{
const code = codes\[0];
console.log(code.getRange());
}

````

**Types:** [`IDocsCodeRange`](https://unpkg.com/@univerjs-pro/docs-code@1.0.0-rc.0/lib/types/facade/types.d.ts)

**Package:** [`@univerjs-pro/docs-code`](https://docs.univer.ai/reference/packages/plugins/univerjs-pro/docs-code.md) · [Type definitions](https://unpkg.com/@univerjs-pro/docs-code@1.0.0-rc.0/lib/types/facade/f-document-code.d.ts)

### `FDocumentCode.getText` [#gettext]

Returns plain text inside the code.

```typescript
getText(): string
````

**Returns**

The code text with block tokens removed.

**Examples**

const fDocument = univerAPI.getActiveDocument();
const code = fDocument.findCodeByText('function');

if (code) \{
console.log(code.getText());
}

````

**Package:** [`@univerjs-pro/docs-code`](https://docs.univer.ai/reference/packages/plugins/univerjs-pro/docs-code.md) · [Type definitions](https://unpkg.com/@univerjs-pro/docs-code@1.0.0-rc.0/lib/types/facade/f-document-code.d.ts)

### `FDocumentCode.remove` [#remove]

Removes this code block and its content.

```typescript
remove(): boolean
````

**Returns**

Whether the code block was removed.

**Examples**

```ts
const fDocument = univerAPI.getActiveDocument()
const code = fDocument.findCodeByText('function')

if (code) {
  const success = code.remove()
  console.log(success)
}
```

**Package:** [`@univerjs-pro/docs-code`](https://docs.univer.ai/reference/packages/plugins/univerjs-pro/docs-code.md) · [Type definitions](https://unpkg.com/@univerjs-pro/docs-code@1.0.0-rc.0/lib/types/facade/f-document-code.d.ts)

### `FDocumentCode.unwrap`

Unwraps this code block by removing only the code block formatting.

```typescript
unwrap(): boolean
```

**Returns**

Whether the code block formatting was removed.

**Examples**

```ts
const fDocument = univerAPI.getActiveDocument()
const code = fDocument.findCodeByText('function')

if (code) {
  // Remove code block formatting from this block.
  const success = code.unwrap()
  console.log(success)
}
```

**Package:** [`@univerjs-pro/docs-code`](https://docs.univer.ai/reference/packages/plugins/univerjs-pro/docs-code.md) · [Type definitions](https://unpkg.com/@univerjs-pro/docs-code@1.0.0-rc.0/lib/types/facade/f-document-code.d.ts)

### `FDocumentCode.updateConfig`

Updates the code block configuration.

```typescript
updateConfig(options: IDocsCodeUpdateFacadeOptions): boolean
```

**Parameters**

* `options` — Required. Code block configuration patch.

**Returns**

Whether the update command succeeded.

**Examples**

```ts
const fDocument = univerAPI.getActiveDocument()
const code = fDocument.findCodeByText('function')

if (code) {
  code.updateConfig({ config: { language: 'typescript' } })
}
```

```

**Types:** [`IDocsCodeUpdateFacadeOptions`](https://unpkg.com/@univerjs-pro/docs-code@1.0.0-rc.0/lib/types/facade/types.d.ts)

**Package:** [`@univerjs-pro/docs-code`](https://docs.univer.ai/reference/packages/plugins/univerjs-pro/docs-code.md) · [Type definitions](https://unpkg.com/@univerjs-pro/docs-code@1.0.0-rc.0/lib/types/facade/f-document-code.d.ts)
```
