mirror of
https://github.com/AppFlowy-IO/AppFlowy.git
synced 2024-08-30 18:12:39 +00:00
refactor: remove named parameters
This commit is contained in:
parent
5e86b83eee
commit
46dba122bd
@ -5,15 +5,19 @@ abstract class Operation {
|
||||
factory Operation.fromJson(Map<String, dynamic> map) {
|
||||
String t = map["type"] as String;
|
||||
if (t == "insert-operation") {
|
||||
final path = map["path"] as List<int>;
|
||||
final value = Node.fromJson(map["value"]);
|
||||
return InsertOperation(path: path, value: value);
|
||||
return InsertOperation.fromJson(map);
|
||||
} else if (t == "update-operation") {
|
||||
return UpdateOperation.fromJson(map);
|
||||
} else if (t == "delete-operation") {
|
||||
return DeleteOperation.fromJson(map);
|
||||
} else if (t == "text-edit-operation") {
|
||||
return TextEditOperation.fromJson(map);
|
||||
}
|
||||
|
||||
throw ArgumentError('unexpected type $t');
|
||||
}
|
||||
final Path path;
|
||||
Operation({required this.path});
|
||||
Operation(this.path);
|
||||
Operation copyWithPath(Path path);
|
||||
Operation invert();
|
||||
Map<String, dynamic> toJson();
|
||||
@ -22,13 +26,16 @@ abstract class Operation {
|
||||
class InsertOperation extends Operation {
|
||||
final Node value;
|
||||
|
||||
InsertOperation({
|
||||
required super.path,
|
||||
required this.value,
|
||||
});
|
||||
factory InsertOperation.fromJson(Map<String, dynamic> map) {
|
||||
final path = map["path"] as List<int>;
|
||||
final value = Node.fromJson(map["value"]);
|
||||
return InsertOperation(path, value);
|
||||
}
|
||||
|
||||
InsertOperation(Path path, this.value) : super(path);
|
||||
|
||||
InsertOperation copyWith({Path? path, Node? value}) =>
|
||||
InsertOperation(path: path ?? this.path, value: value ?? this.value);
|
||||
InsertOperation(path ?? this.path, value ?? this.value);
|
||||
|
||||
@override
|
||||
Operation copyWithPath(Path path) => copyWith(path: path);
|
||||
@ -36,8 +43,8 @@ class InsertOperation extends Operation {
|
||||
@override
|
||||
Operation invert() {
|
||||
return DeleteOperation(
|
||||
path: path,
|
||||
removedValue: value,
|
||||
path,
|
||||
value,
|
||||
);
|
||||
}
|
||||
|
||||
@ -55,18 +62,23 @@ class UpdateOperation extends Operation {
|
||||
final Attributes attributes;
|
||||
final Attributes oldAttributes;
|
||||
|
||||
UpdateOperation({
|
||||
required super.path,
|
||||
required this.attributes,
|
||||
required this.oldAttributes,
|
||||
});
|
||||
factory UpdateOperation.fromJson(Map<String, dynamic> map) {
|
||||
final path = map["path"] as List<int>;
|
||||
final attributes = map["attributes"] as Map<String, dynamic>;
|
||||
final oldAttributes = map["oldAttributes"] as Map<String, dynamic>;
|
||||
return UpdateOperation(path, attributes, oldAttributes);
|
||||
}
|
||||
|
||||
UpdateOperation(
|
||||
Path path,
|
||||
this.attributes,
|
||||
this.oldAttributes,
|
||||
) : super(path);
|
||||
|
||||
UpdateOperation copyWith(
|
||||
{Path? path, Attributes? attributes, Attributes? oldAttributes}) =>
|
||||
UpdateOperation(
|
||||
path: path ?? this.path,
|
||||
attributes: attributes ?? this.attributes,
|
||||
oldAttributes: oldAttributes ?? this.oldAttributes);
|
||||
UpdateOperation(path ?? this.path, attributes ?? this.attributes,
|
||||
oldAttributes ?? this.oldAttributes);
|
||||
|
||||
@override
|
||||
Operation copyWithPath(Path path) => copyWith(path: path);
|
||||
@ -74,9 +86,9 @@ class UpdateOperation extends Operation {
|
||||
@override
|
||||
Operation invert() {
|
||||
return UpdateOperation(
|
||||
path: path,
|
||||
attributes: oldAttributes,
|
||||
oldAttributes: attributes,
|
||||
path,
|
||||
oldAttributes,
|
||||
attributes,
|
||||
);
|
||||
}
|
||||
|
||||
@ -94,23 +106,26 @@ class UpdateOperation extends Operation {
|
||||
class DeleteOperation extends Operation {
|
||||
final Node removedValue;
|
||||
|
||||
DeleteOperation({
|
||||
required super.path,
|
||||
required this.removedValue,
|
||||
});
|
||||
factory DeleteOperation.fromJson(Map<String, dynamic> map) {
|
||||
final path = map["path"] as List<int>;
|
||||
final removedValue = Node.fromJson(map["removedValue"]);
|
||||
return DeleteOperation(path, removedValue);
|
||||
}
|
||||
|
||||
DeleteOperation copyWith({Path? path, Node? removedValue}) => DeleteOperation(
|
||||
path: path ?? this.path, removedValue: removedValue ?? this.removedValue);
|
||||
DeleteOperation(
|
||||
Path path,
|
||||
this.removedValue,
|
||||
) : super(path);
|
||||
|
||||
DeleteOperation copyWith({Path? path, Node? removedValue}) =>
|
||||
DeleteOperation(path ?? this.path, removedValue ?? this.removedValue);
|
||||
|
||||
@override
|
||||
Operation copyWithPath(Path path) => copyWith(path: path);
|
||||
|
||||
@override
|
||||
Operation invert() {
|
||||
return InsertOperation(
|
||||
path: path,
|
||||
value: removedValue,
|
||||
);
|
||||
return InsertOperation(path, removedValue);
|
||||
}
|
||||
|
||||
@override
|
||||
@ -127,24 +142,29 @@ class TextEditOperation extends Operation {
|
||||
final Delta delta;
|
||||
final Delta inverted;
|
||||
|
||||
TextEditOperation({
|
||||
required super.path,
|
||||
required this.delta,
|
||||
required this.inverted,
|
||||
});
|
||||
factory TextEditOperation.fromJson(Map<String, dynamic> map) {
|
||||
final path = map["path"] as List<int>;
|
||||
final delta = Delta.fromJson(map["delta"]);
|
||||
final invert = Delta.fromJson(map["invert"]);
|
||||
return TextEditOperation(path, delta, invert);
|
||||
}
|
||||
|
||||
TextEditOperation(
|
||||
Path path,
|
||||
this.delta,
|
||||
this.inverted,
|
||||
) : super(path);
|
||||
|
||||
TextEditOperation copyWith({Path? path, Delta? delta, Delta? inverted}) =>
|
||||
TextEditOperation(
|
||||
path: path ?? this.path,
|
||||
delta: delta ?? this.delta,
|
||||
inverted: inverted ?? this.inverted);
|
||||
path ?? this.path, delta ?? this.delta, inverted ?? this.inverted);
|
||||
|
||||
@override
|
||||
Operation copyWithPath(Path path) => copyWith(path: path);
|
||||
|
||||
@override
|
||||
Operation invert() {
|
||||
return TextEditOperation(path: path, delta: inverted, inverted: delta);
|
||||
return TextEditOperation(path, inverted, delta);
|
||||
}
|
||||
|
||||
@override
|
||||
|
@ -1,5 +1,4 @@
|
||||
import 'dart:collection';
|
||||
import 'dart:math';
|
||||
import 'package:flowy_editor/editor_state.dart';
|
||||
import 'package:flowy_editor/document/node.dart';
|
||||
import 'package:flowy_editor/document/path.dart';
|
||||
@ -31,21 +30,21 @@ class TransactionBuilder {
|
||||
|
||||
insertNode(Path path, Node node) {
|
||||
beforeSelection = state.cursorSelection;
|
||||
add(InsertOperation(path: path, value: node));
|
||||
add(InsertOperation(path, node));
|
||||
}
|
||||
|
||||
updateNode(Node node, Attributes attributes) {
|
||||
beforeSelection = state.cursorSelection;
|
||||
add(UpdateOperation(
|
||||
path: node.path,
|
||||
attributes: Attributes.from(node.attributes)..addAll(attributes),
|
||||
oldAttributes: node.attributes,
|
||||
node.path,
|
||||
Attributes.from(node.attributes)..addAll(attributes),
|
||||
node.attributes,
|
||||
));
|
||||
}
|
||||
|
||||
deleteNode(Node node) {
|
||||
beforeSelection = state.cursorSelection;
|
||||
add(DeleteOperation(path: node.path, removedValue: node));
|
||||
add(DeleteOperation(node.path, node));
|
||||
}
|
||||
|
||||
textEdit(TextNode node, Delta Function() f) {
|
||||
@ -56,7 +55,7 @@ class TransactionBuilder {
|
||||
|
||||
final inverted = delta.invert(node.delta);
|
||||
|
||||
add(TextEditOperation(path: path, delta: delta, inverted: inverted));
|
||||
add(TextEditOperation(path, delta, inverted));
|
||||
}
|
||||
|
||||
insertText(TextNode node, int index, String content) {
|
||||
@ -82,9 +81,9 @@ class TransactionBuilder {
|
||||
last is TextEditOperation &&
|
||||
pathEquals(op.path, last.path)) {
|
||||
final newOp = TextEditOperation(
|
||||
path: op.path,
|
||||
delta: last.delta.compose(op.delta),
|
||||
inverted: op.inverted.compose(last.inverted),
|
||||
op.path,
|
||||
last.delta.compose(op.delta),
|
||||
op.inverted.compose(last.inverted),
|
||||
);
|
||||
operations[operations.length - 1] = newOp;
|
||||
return;
|
||||
|
@ -27,26 +27,18 @@ void main() {
|
||||
group('transform operation', () {
|
||||
test('insert + insert', () {
|
||||
final t = transformOperation(
|
||||
InsertOperation(path: [
|
||||
0,
|
||||
1
|
||||
], value: Node(type: "node", attributes: {}, children: LinkedList())),
|
||||
InsertOperation(
|
||||
path: [0, 1],
|
||||
value:
|
||||
Node(type: "node", attributes: {}, children: LinkedList())));
|
||||
InsertOperation([0, 1],
|
||||
Node(type: "node", attributes: {}, children: LinkedList())),
|
||||
InsertOperation([0, 1],
|
||||
Node(type: "node", attributes: {}, children: LinkedList())));
|
||||
expect(t.path, [0, 2]);
|
||||
});
|
||||
test('delete + delete', () {
|
||||
final t = transformOperation(
|
||||
DeleteOperation(
|
||||
path: [0, 1],
|
||||
removedValue:
|
||||
Node(type: "node", attributes: {}, children: LinkedList())),
|
||||
DeleteOperation(
|
||||
path: [0, 2],
|
||||
removedValue:
|
||||
Node(type: "node", attributes: {}, children: LinkedList())));
|
||||
DeleteOperation([0, 1],
|
||||
Node(type: "node", attributes: {}, children: LinkedList())),
|
||||
DeleteOperation([0, 2],
|
||||
Node(type: "node", attributes: {}, children: LinkedList())));
|
||||
expect(t.path, [0, 1]);
|
||||
});
|
||||
});
|
||||
|
Loading…
Reference in New Issue
Block a user