mirror of
https://github.com/golang/go
synced 2024-11-23 19:50:06 -07:00
go/printer: revert "make empty lines break table alignment"
This reverts commit c116265eb3
.
The change, while addressing issue #26352, introduced another
regression (#26930), which is worse. Reverting this change in
favor of a better fix for the original issue.
Updates #26352.
Fixes #26930.
Change-Id: I71ad12a8212992cce5c1e73907d1f7460f98d9e8
Reviewed-on: https://go-review.googlesource.com/129255
Run-TryBot: Robert Griesemer <gri@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Daniel Martí <mvdan@mvdan.cc>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
This commit is contained in:
parent
81555cb4f3
commit
daeb0b4f53
@ -221,22 +221,13 @@ func (p *printer) exprList(prev0 token.Pos, list []ast.Expr, depth int, mode exp
|
||||
// If the previous line and the current line had single-
|
||||
// line-expressions and the key sizes are small or the
|
||||
// ratio between the current key and the geometric mean
|
||||
// does not exceed a threshold, align columns and do not use
|
||||
// formfeed.
|
||||
// If the previous line was an empty line, break the alignment.
|
||||
// (The text/tabwriter will break alignment after an empty line
|
||||
// even if we don't do anything here, but we can't see that; yet
|
||||
// we need to reset the variables used in the geomean
|
||||
// computation after an alignment break. Do it explicitly
|
||||
// instead so we're aware of the break. Was issue #26352.)
|
||||
// if the previous key sizes does not exceed a threshold,
|
||||
// align columns and do not use formfeed.
|
||||
if prevSize > 0 && size > 0 {
|
||||
const smallSize = 40
|
||||
switch {
|
||||
case prevLine+1 < line:
|
||||
useFF = true
|
||||
case count == 0, prevSize <= smallSize && size <= smallSize:
|
||||
if count == 0 || prevSize <= smallSize && size <= smallSize {
|
||||
useFF = false
|
||||
default:
|
||||
} else {
|
||||
const r = 2.5 // threshold
|
||||
geomean := math.Exp(lnsum / float64(count)) // count > 0
|
||||
ratio := float64(size) / geomean
|
||||
|
9
src/go/printer/testdata/alignment.golden
vendored
9
src/go/printer/testdata/alignment.golden
vendored
@ -128,12 +128,3 @@ func main() {
|
||||
abcdefghijklmnopqrstuvwxyz: "foo",
|
||||
}
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// Examples from issue #26352.
|
||||
var _ = map[int]string{
|
||||
1: "",
|
||||
|
||||
12345678901234567890123456789: "",
|
||||
12345678901234567890123456789012345678: "",
|
||||
}
|
||||
|
9
src/go/printer/testdata/alignment.input
vendored
9
src/go/printer/testdata/alignment.input
vendored
@ -128,12 +128,3 @@ func main() {
|
||||
abcdefghijklmnopqrstuvwxyz: "foo",
|
||||
}
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// Examples from issue #26352.
|
||||
var _ = map[int]string{
|
||||
1: "",
|
||||
|
||||
12345678901234567890123456789: "",
|
||||
12345678901234567890123456789012345678: "",
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user