1
0
mirror of https://github.com/golang/go synced 2024-09-24 23:10:12 -06:00

go/printer: align ImportPaths in ImportDecls if PackageName is given.

Fixes #1044.

R=gri
CC=golang-dev
https://golang.org/cl/1958047
This commit is contained in:
Scott Lawrence 2010-08-26 22:08:02 -07:00 committed by Robert Griesemer
parent 20198d69f9
commit 1a0b62a16a
3 changed files with 60 additions and 20 deletions

View File

@ -1192,25 +1192,25 @@ func (p *printer) stmt(stmt ast.Stmt, nextIsRBrace bool, multiLine *bool) {
// ----------------------------------------------------------------------------
// Declarations
// The parameter n is the number of specs in the group. If indent is set,
// The parameter n is the number of specs in the group. If doIndent is set,
// multi-line identifier lists in the spec are indented when the first
// linebreak is encountered.
// Sets multiLine to true if the spec spans multiple lines.
//
func (p *printer) spec(spec ast.Spec, n int, indent bool, multiLine *bool) {
func (p *printer) spec(spec ast.Spec, n int, doIndent bool, multiLine *bool) {
switch s := spec.(type) {
case *ast.ImportSpec:
p.setComment(s.Doc)
if s.Name != nil {
p.expr(s.Name, multiLine)
p.print(blank)
p.print(vtab)
}
p.expr(s.Path, multiLine)
p.setComment(s.Comment)
case *ast.ValueSpec:
p.setComment(s.Doc)
p.identList(s.Names, indent, multiLine) // always present
p.identList(s.Names, doIndent, multiLine) // always present
if n == 1 {
if s.Type != nil {
p.print(blank)

View File

@ -7,10 +7,10 @@ package imports
import "io"
import (
_ "io"
_ "io"
)
import _ "io"
import _ "io"
import (
"io"
@ -20,40 +20,60 @@ import (
import (
"io"
aLongRename "io"
aLongRename "io"
b "io"
b "io"
)
import (
"unrenamed"
renamed "renameMe"
. "io"
_ "io"
"io"
. "os"
)
// no newlines between consecutive single imports, but
// respect extra line breaks in the source (at most one empty line)
import _ "io"
import _ "io"
import _ "io"
import _ "io"
import _ "io"
import _ "io"
import _ "os"
import _ "os"
import _ "os"
import _ "os"
import _ "os"
import _ "os"
import _ "fmt"
import _ "fmt"
import _ "fmt"
import _ "fmt"
import _ "fmt"
import _ "fmt"
import "foo" // a comment
import "bar" // a comment
import (
_ "foo"
_ "foo"
// a comment
"bar"
"foo" // a comment
"bar" // a comment
)
// comments + renames
import (
"unrenamed" // a comment
renamed "renameMe"
. "io" /* a comment */
_ "io/ioutil" // a comment
"io" // testing alignment
. "os"
// a comment
)
// a case that caused problems in the past (comment placement)
import (
. "fmt"
. "fmt"
"io"
"malloc" // for the malloc count test only
"math"
@ -63,7 +83,7 @@ import (
// at least one empty line between declarations of different kind
import _ "io"
import _ "io"
var _ int

View File

@ -25,6 +25,15 @@ import (
b "io"
)
import (
"unrenamed"
renamed "renameMe"
. "io"
_ "io"
"io"
. "os"
)
// no newlines between consecutive single imports, but
// respect extra line breaks in the source (at most one empty line)
import _ "io"
@ -51,6 +60,17 @@ import (
"bar" // a comment
)
// comments + renames
import (
"unrenamed" // a comment
renamed "renameMe"
. "io" /* a comment */
_ "io/ioutil" // a comment
"io" // testing alignment
. "os"
// a comment
)
// a case that caused problems in the past (comment placement)
import (
. "fmt"