diff --git a/CHANGELOG.md b/CHANGELOG.md
index c661308..3170610 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,7 @@
 
 * Format named arguments anywhere (#1072).
 * Format enhanced enums (#1075).
+* Format "super." parameters (#1091).
 
 # 2.2.1
 
diff --git a/lib/src/source_visitor.dart b/lib/src/source_visitor.dart
index 30af279..0414a7c 100644
--- a/lib/src/source_visitor.dart
+++ b/lib/src/source_visitor.dart
@@ -2585,6 +2585,21 @@
   }
 
   @override
+  void visitSuperFormalParameter(SuperFormalParameter node) {
+    visitParameterMetadata(node.metadata, () {
+      _beginFormalParameter(node);
+      token(node.keyword, after: space);
+      visit(node.type, after: split);
+      token(node.superKeyword);
+      token(node.period);
+      visit(node.identifier);
+      visit(node.parameters);
+      token(node.question);
+      _endFormalParameter(node);
+    });
+  }
+
+  @override
   void visitSwitchCase(SwitchCase node) {
     _visitLabels(node.labels);
     token(node.keyword);
diff --git a/test/whitespace/constructors.unit b/test/whitespace/constructors.unit
index 107bf1b..6797b58 100644
--- a/test/whitespace/constructors.unit
+++ b/test/whitespace/constructors.unit
@@ -68,4 +68,26 @@
 <<<
 class Foo {
   Foo(this.bar(), baz);
+}
+>>> "super." parameters
+class Foo {
+  Foo(super . a, int  super  . b  , int  super . bar());
+  Foo.optional([  super . a, int  super  . b   =  123 , int  super . bar()  ]);
+  Foo.named({ required   super . a, int  super  . b  : 123 ,  required int  super . bar()  });
+  Foo.other(  final   int  super.x,   super.bar()  ?  );
+}
+<<<
+class Foo {
+  Foo(super.a, int super.b,
+      int super.bar());
+  Foo.optional(
+      [super.a,
+      int super.b = 123,
+      int super.bar()]);
+  Foo.named(
+      {required super.a,
+      int super.b: 123,
+      required int super.bar()});
+  Foo.other(
+      final int super.x, super.bar()?);
 }
\ No newline at end of file
diff --git a/test/whitespace/metadata.unit b/test/whitespace/metadata.unit
index 37a311a..2d7f199 100644
--- a/test/whitespace/metadata.unit
+++ b/test/whitespace/metadata.unit
@@ -209,6 +209,15 @@
 class Foo {
   Foo(@bar this.field);
 }
+>>> metadata on "super." parameter
+class Foo {
+  Foo(@bar super.field, [  @foo()   @baz   super.another  ]);
+}
+<<<
+class Foo {
+  Foo(@bar super.field,
+      [@foo() @baz super.another]);
+}
 >>> metadata on function-typed formal parameter
 withReturnType(@foo @bar int fn(@foo param)) {}
 withoutReturnType(@foo @bar fn(@foo param)) {}
