浏览代码

refactor: remove named parameters

Vincent Chan 2 年之前
父节点
当前提交
46dba122bd

+ 62 - 42
frontend/app_flowy/packages/flowy_editor/lib/operation/operation.dart

@@ -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

+ 9 - 10
frontend/app_flowy/packages/flowy_editor/lib/operation/transaction_builder.dart

@@ -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;

+ 8 - 16
frontend/app_flowy/packages/flowy_editor/test/operation_test.dart

@@ -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]);
     });
   });