appflowy-editor/test/new/util/document_util.dart
Lucas f882d958d9
feat: integrate awesome_lints and upgrade to Flutter 3.38 (#1173)
* chore: update Flutter SDK to version 3.38.5

Upgrade Flutter from 3.32.4 to 3.38.5 to meet awesome_lints
requirement for Dart SDK 3.10.0+. Update CI workflow to use
the new Flutter version and add custom_lint verification step.

* chore: integrate awesome_lints with custom lint rules

Add awesome_lints and custom_lint dependencies, configure
analysis_options.yaml to enable newline lint rules: newline_before_case,
newline_before_constructor, newline_before_method, and newline_before_return.

* style: apply newline formatting per awesome_lints rules

Add blank lines before case clauses, return statements, method
declarations, and constructors throughout the codebase to comply
with awesome_lints newline rules.

* fix: replace deprecated translate with leftTranslateByDouble

Update Matrix4.translate() calls to use the new leftTranslateByDouble()
API to resolve deprecation warnings in Flutter SDK 3.38.5.

* chore: improve code readability with blank line formatting
2025-12-23 15:12:57 +08:00

76 lines
1.5 KiB
Dart

import 'package:appflowy_editor/appflowy_editor.dart';
import 'typedef_util.dart';
extension DocumentExtension on Document {
Document addParagraphs(
int count, {
TextBuilder? builder,
String? initialText,
NodeDecorator? decorator,
}) {
return addNodes(
count,
'paragraph',
builder: builder,
initialText: initialText,
decorator: decorator,
);
}
Document addParagraph({
TextBuilder? builder,
String? initialText,
NodeDecorator? decorator,
}) {
return addParagraphs(
1,
builder: builder,
initialText: initialText,
decorator: decorator,
);
}
Document addNodes(
int count,
String type, {
TextBuilder? builder,
String? initialText,
NodeDecorator? decorator,
}) {
final builder0 = builder ??
(index) => Delta()
..insert(initialText ?? '🔥 $index. Welcome to AppFlowy Editor!');
final decorator0 = decorator ?? (index, node) {};
final children = List.generate(count, (index) {
final node = Node(type: type);
decorator0(index, node);
node.updateAttributes({
'delta': builder0(index).toJson(),
});
return node;
});
return this
..insert(
[root.children.length],
children,
);
}
Document addNode(
String type, {
TextBuilder? builder,
String? initialText,
NodeDecorator? decorator,
}) {
return addNodes(
1,
type,
builder: builder,
initialText: initialText,
decorator: decorator,
);
}
}