Upstream CL: https://go-review.googlesource.com/c/tools/+/321409

From cdd84f3789f3ebbd1c55dc220bbbe4a77ab4024a Mon Sep 17 00:00:00 2001
From: Moekr <1143757638wlw@gmail.com>
Date: Thu, 20 May 2021 15:41:17 +0800
Subject: [PATCH] internal/imports: merge mergeable import groups

Merge two import groups if there is no comments between them.
This can make import blocks look more pretty.

Fixes golang/go#20818 golang/go#28200

Change-Id: Ic02ca83bd778e6d5b5b3c15292cde4fba6c842a9
---
 internal/imports/fix_test.go    | 65 +++++++++++++++++++++++++++++----
 internal/imports/sortimports.go | 23 ++++++++++--
 2 files changed, 77 insertions(+), 11 deletions(-)

diff --git a/internal/imports/fix_test.go b/internal/imports/fix_test.go
index 005bf96e..5ff84cdd 100644
--- a/internal/imports/fix_test.go
+++ b/internal/imports/fix_test.go
@@ -553,7 +553,6 @@ c = fmt.Printf
 
 import (
 	"fmt"
-
 	"gu"
 
 	"manypackages.com/packagea"
@@ -644,15 +643,11 @@ var _, _, _, _, _ = fmt.Errorf, io.Copy, strings.Contains, renamed_packagea.A, B
 
 import (
 	"fmt"
-
-	renamed_packagea "manypackages.com/packagea"
-
 	"io"
-
-	. "manypackages.com/packageb"
-
 	"strings"
 
+	renamed_packagea "manypackages.com/packagea"
+	. "manypackages.com/packageb"
 	_ "manypackages.com/packagec"
 )
 
@@ -1151,6 +1146,62 @@ var _, _ = rand.Read, rand.NewZipf
 import "math/rand"
 
 var _, _ = rand.Read, rand.NewZipf
+`,
+	},
+	{
+		name: "comment_between_imports_simple",
+		in: `package main
+
+import (
+	_ "foo2"
+	// foo3 has side effects.
+	_ "foo3"
+	_ "foo1"
+)
+`,
+		out: `package main
+
+import (
+	_ "foo2"
+	// foo3 has side effects.
+	_ "foo1"
+	_ "foo3"
+)
+`,
+	},
+	{
+		name: "comment_between_imports_complex",
+		in: `package main
+
+import (
+	_ "foo1" // foo1, "std" package
+	_ "github.com/bar/foo1" // github.com/bar/foo1, third-party package
+	_ "local/foo1" // local/foo1, local package
+
+	_ "appengine"
+
+	_ "foo2"
+	// local/foo3 comment
+	_ "local/foo3"
+	_ "github.com/bar/foo2"
+)
+`,
+		out: `package main
+
+import (
+	_ "foo1" // foo1, "std" package
+	_ "foo2"
+	_ "local/foo1" // local/foo1, local package
+
+	_ "github.com/bar/foo1" // github.com/bar/foo1, third-party package
+
+	_ "appengine"
+
+	// local/foo3 comment
+	_ "local/foo3"
+
+	_ "github.com/bar/foo2"
+)
 `,
 	},
 }
diff --git a/internal/imports/sortimports.go b/internal/imports/sortimports.go
index be8ffa25..25c5ca3f 100644
--- a/internal/imports/sortimports.go
+++ b/internal/imports/sortimports.go
@@ -34,14 +34,29 @@ func sortImports(localPrefix string, fset *token.FileSet, f *ast.File) {
 			continue
 		}
 
+		// Find comments.
+		commentLines := make([]int, len(f.Comments))
+		for j, comment := range f.Comments {
+			commentLines[j] = fset.Position(comment.Pos()).Line
+		}
+
 		// Identify and sort runs of specs on successive lines.
 		i := 0
 		specs := d.Specs[:0]
 		for j, s := range d.Specs {
-			if j > i && fset.Position(s.Pos()).Line > 1+fset.Position(d.Specs[j-1].End()).Line {
-				// j begins a new run.  End this one.
-				specs = append(specs, sortSpecs(localPrefix, fset, f, d.Specs[i:j])...)
-				i = j
+			if j > i {
+				curLine, prevLine := fset.Position(s.Pos()).Line, fset.Position(d.Specs[j-1].End()).Line
+				if curLine > 1+prevLine {
+					// j begins a new run.
+					for _, commentLine := range commentLines {
+						if prevLine < commentLine && commentLine < curLine {
+							// End this one if there is a comment before the new one.
+							specs = append(specs, sortSpecs(localPrefix, fset, f, d.Specs[i:j])...)
+							i = j
+							break
+						}
+					}
+				}
 			}
 		}
 		specs = append(specs, sortSpecs(localPrefix, fset, f, d.Specs[i:])...)
-- 
2.31.1

