Files
upstream-mirror 702cc698a7
Some checks failed
Build & Test / Analyze (javascript, affine) (push) Failing after 4s
Build & Test / Analyze (typescript, affine) (push) Failing after 3s
Build & Test / Rust test filter (push) Failing after 4s
Build & Test / Check yarn binary (push) Failing after 3s
Build & Test / E2E BlockSuite Test (3) (push) Failing after 3s
Build & Test / Analyze (javascript, blocksuite) (push) Failing after 3s
Build & Test / Analyze (typescript, blocksuite) (push) Failing after 3s
Build & Test / Mobile native build filter (push) Failing after 3s
Build & Test / E2E BlockSuite Test (1) (push) Failing after 4s
Build & Test / E2E BlockSuite Test (2) (push) Failing after 4s
Build & Test / E2E Mobile Test (1) (push) Failing after 3s
Build & Test / Unit Test (1) (push) Has been skipped
Build & Test / Unit Test (2) (push) Has been skipped
Build & Test / Unit Test (3) (push) Has been skipped
Build & Test / Unit Test (4) (push) Has been skipped
Build & Test / Unit Test (5) (push) Has been skipped
Build & Test / Native Unit Test (push) Has been skipped
Build & Test / E2E BlockSuite Test (4) (push) Failing after 3s
Build & Test / E2E BlockSuite Test (5) (push) Failing after 3s
Build & Test / E2E BlockSuite Cross Browser Test (push) Failing after 3s
Build & Test / E2E Mobile Test (2) (push) Failing after 3s
Build & Test / Build AFFiNE native (x86_64-unknown-linux-gnu) (push) Failing after 3s
Build & Test / Build Server native (push) Failing after 3s
Build & Test / Check Git Status (push) Has been skipped
Build & Test / Server Test (0, 4) (push) Has been skipped
Build & Test / Server Test (1, 4) (push) Has been skipped
Build & Test / Server Test (2, 4) (push) Has been skipped
Build & Test / Server Test (3, 4) (push) Has been skipped
Build & Test / Server Test with Elasticsearch (push) Has been skipped
Build & Test / Build @affine/electron renderer (push) Failing after 3s
Build & Test / Copilot test filter (push) Failing after 4s
Build & Test / Lint Rust (push) Has been skipped
Build & Test / Server Test with Embedded Search (push) Has been skipped
Build & Test / Server Test with Manticore Search (push) Has been skipped
Build & Test / Server E2E Test (push) Has been skipped
Build & Test / Cloud Desktop E2E Test (push) Has been skipped
Build & Test / Cloud E2E Test 1/2 (push) Has been skipped
Build & Test / Cloud E2E Test 2/2 (push) Has been skipped
Build & Test / Build Android app (push) Has been skipped
Build & Test / Test Android app (push) Has been skipped
Build & Test / Run native tests (push) Has been skipped
Build & Test / Server Copilot Api Test (push) Has been skipped
Build & Test / Frontend Copilot E2E Test (1, 5) (push) Has been skipped
Build & Test / Frontend Copilot E2E Test (2, 5) (push) Has been skipped
Build & Test / Frontend Copilot E2E Test (3, 5) (push) Has been skipped
Build & Test / Frontend Copilot E2E Test (4, 5) (push) Has been skipped
Build & Test / Frontend Copilot E2E Test (5, 5) (push) Has been skipped
Release / Canary Gate (push) Has been skipped
Build & Test / Build AFFiNE native (aarch64-apple-darwin) (push) Has been cancelled
Build & Test / Lint (push) Has been cancelled
Build & Test / Typecheck (push) Has been cancelled
Build & Test / Build AFFiNE native (x86_64-apple-darwin) (push) Has been cancelled
Build & Test / Desktop Test (ubuntu-latest, linux, x64, x86_64-unknown-linux-gnu, true) (push) Has been cancelled
Build & Test / Desktop Test (windows-latest, windows, x64, x86_64-pc-windows-msvc, true) (push) Has been cancelled
Build & Test / E2E Test (1) (push) Has been cancelled
Build & Test / E2E Test (2) (push) Has been cancelled
Build & Test / E2E Test (3) (push) Has been cancelled
Build & Test / E2E Test (4) (push) Has been cancelled
Build & Test / E2E Test (5) (push) Has been cancelled
Build & Test / Build AFFiNE native (aarch64-pc-windows-msvc) (push) Has been cancelled
Build & Test / Build AFFiNE native (x86_64-pc-windows-msvc) (push) Has been cancelled
Build & Test / Desktop Test (macos-latest, macos, arm64, aarch64-apple-darwin, true) (push) Has been cancelled
Build & Test / Desktop Test (macos-latest, macos, x64, x86_64-apple-darwin, false) (push) Has been cancelled
Build & Test / 3, 2, 1 Launch (push) Has been cancelled
Build & Test / Build iOS app (push) Has been cancelled
Copilot Test Automatically / Setup Test (push) Failing after 2s
Release / Prepare (push) Failing after 1s
Release / Release Mobile (push) Has been skipped
Release / Release Desktop (push) Has been skipped
Release / Release Docker Image (push) Has been skipped
Release / Release Cloud (push) Has been skipped
snapshot of https://github.com/toeverything/AFFiNE.git (canary, 2026-09-16; blobs > 131072B omitted)
2026-09-16 04:01:20 +05:00

5.2 KiB

BlockSuite API Documentation


BlockSuite API Documentation / @blocksuite/store / Text

Class: Text<TextAttributes>

Text is an abstraction of Y.Text. It provides useful methods to manipulate the text content.

Example

const text = new Text('Hello, world!');
text.insert(' blocksuite', 7);
text.delete(7, 1);
text.format(7, 1, { bold: true });
text.join(new Text(' blocksuite'));
text.split(7, 1);

Text delta is a format from Y.js.

Type Parameters

TextAttributes

TextAttributes extends BaseTextAttributes = BaseTextAttributes

Constructors

Constructor

new Text<TextAttributes>(input?): Text<TextAttributes>

Parameters

input?

string | YText | DeltaInsert<TextAttributes>[]

The input can be a string, a Y.Text instance, or an array of DeltaInsert.

Returns

Text<TextAttributes>

Accessors

deltas$

Get Signature

get deltas$(): Signal<DeltaOperation[]>

Get the text delta as a signal.

Returns

Signal<DeltaOperation[]>

Methods

applyDelta()

applyDelta(delta): void

Apply a delta to the text.

Parameters

delta

DeltaOperation[]

The delta to apply.

Returns

void

Example

const text = new Text('Hello, world!');
text.applyDelta([{insert: ' blocksuite', attributes: { bold: true }}]);

clear()

clear(): void

Clear the text content.

Returns

void


clone()

clone(): Text<{ bold?: true | null; code?: true | null; italic?: true | null; link?: string | null; strike?: true | null; underline?: true | null; }>

Clone the text to a new Text instance.

Returns

Text<{ bold?: true | null; code?: true | null; italic?: true | null; link?: string | null; strike?: true | null; underline?: true | null; }>

A new Text instance.


delete()

delete(index, length): void

Delete the text content.

Parameters

index

number

The index to delete.

length

number

The length to delete.

Returns

void


format()

format(index, length, format): void

Format the text content.

Parameters

index

number

The index to format.

length

number

The length to format.

format

Record<string, unknown>

The format to apply.

Returns

void

Example

const text = new Text('Hello, world!');
text.format(7, 1, { bold: true });

insert()

insert(content, index, attributes?): void

Insert content at the specified index.

Parameters

content

string

The content to insert.

index

number

The index to insert.

attributes?

Record<string, unknown>

Returns

void

Example

const text = new Text('Hello, world!');
text.insert(' blocksuite', 7);

join()

join(other): void

Join current text with another text.

Parameters

other

Text

The other text to join.

Returns

void

Example

const text = new Text('Hello, world!');
const other = new Text(' blocksuite');
text.join(other);

replace()

replace(index, length, content, attributes?): void

Replace the text content with a new content.

Parameters

index

number

The index to replace.

length

number

The length to replace.

content

string

The content to replace.

attributes?

Record<string, unknown>

The attributes to replace.

Returns

void

Example

const text = new Text('Hello, world!');
text.replace(7, 1, ' blocksuite');

sliceToDelta()

sliceToDelta(begin, end?): DeltaOperation[]

Slice the text to a delta.

Parameters

begin

number

The begin index.

end?

number

The end index.

Returns

DeltaOperation[]

The delta of the sliced text.


split()

split(index, length?): Text

Split the text into another Text.

Parameters

index

number

The index to split.

length?

number = 0

The length to split.

Returns

Text

The right part of the text.

Example

const text = new Text('Hello, world!');
text.split(7, 1);

NOTE: The string included in [index, index + length) will be deleted.

Here are three cases for point position(index + length):

[{insert: 'abc', ...}, {insert: 'def', ...}, {insert: 'ghi', ...}]
1. abc|de|fghi
   left: [{insert: 'abc', ...}]
   right: [{insert: 'f', ...}, {insert: 'ghi', ...}]
2. abc|def|ghi
   left: [{insert: 'abc', ...}]
   right: [{insert: 'ghi', ...}]
3. abc|defg|hi
   left: [{insert: 'abc', ...}]
   right: [{insert: 'hi', ...}]

toDelta()

toDelta(): DeltaOperation[]

Get the text delta.

Returns

DeltaOperation[]

The delta of the text.


toString()

toString(): string

Get the text content as a string. In most cases, you should not use this method. It will lose the delta attributes information.

Returns

string

The text content.