diff --git a/lib/syntax_tree/node.rb b/lib/syntax_tree/node.rb
index 3b676552..0634d8df 100644
--- a/lib/syntax_tree/node.rb
+++ b/lib/syntax_tree/node.rb
@@ -9981,6 +9981,11 @@ def format(q)
           q.breakable_force
           q.breakable_force
           q.format(statement)
+        elsif statement.is_a?(DefNode) && previous.is_a?(DefNode) &&
+              (statement.location.start_line - line) == 1
+          q.breakable_force
+          q.breakable_force
+          q.format(statement)
         elsif statement.location.start_line != line
           q.breakable_force
           q.format(statement)
diff --git a/test/fixtures/def.rb b/test/fixtures/def.rb
index 0cc49e0a..0ef81575 100644
--- a/test/fixtures/def.rb
+++ b/test/fixtures/def.rb
@@ -29,3 +29,14 @@ def foo( # comment
 =end
 a
 end
+%
+def foo
+end
+def bar
+end
+-
+def foo
+end
+
+def bar
+end
diff --git a/test/fixtures/defs.rb b/test/fixtures/defs.rb
index 03f841ba..960c9c65 100644
--- a/test/fixtures/defs.rb
+++ b/test/fixtures/defs.rb
@@ -29,3 +29,14 @@ def foo::foo
 -
 def foo.foo
 end
+%
+def foo.foo
+end
+def foo.bar
+end
+-
+def foo.foo
+end
+
+def foo.bar
+end