]> Cypherpunks repositories - gostls13.git/commitdiff
go/printer: align ImportPaths in ImportDecls if PackageName is given.
authorScott Lawrence <bytbox@gmail.com>
Fri, 27 Aug 2010 05:08:02 +0000 (22:08 -0700)
committerRobert Griesemer <gri@golang.org>
Fri, 27 Aug 2010 05:08:02 +0000 (22:08 -0700)
Fixes #1044.

R=gri
CC=golang-dev
https://golang.org/cl/1958047

src/pkg/go/printer/nodes.go
src/pkg/go/printer/testdata/declarations.golden
src/pkg/go/printer/testdata/declarations.input

index 434154f699584fec81476f0c98fe17e19fa8914a..9e5665089e78934b101ddf80be65c4e633194c17 100644 (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)
index 56b99e19b4496cea60cecc62c3d3147e4949144c..394460c9d500e16eb2709bbb2bb32fa597131468 100644 (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
 
index eb1baae04301d40d03f1797707f93bafc42180f4..94e659daba051e881c2b94b53bf16dfcf8ed58dd 100644 (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"