Skip to content

Commit

Permalink
[#144] If it is single import, do not convert into an import list
Browse files Browse the repository at this point in the history
  • Loading branch information
Ericwww committed Dec 11, 2023
1 parent ed23792 commit 6c22ddd
Show file tree
Hide file tree
Showing 2 changed files with 77 additions and 0 deletions.
9 changes: 9 additions & 0 deletions reviser/file.go
Original file line number Diff line number Diff line change
Expand Up @@ -379,6 +379,15 @@ func rebuildImports(tok token.Token, commentsMetadata map[string]*commentsMetada
var specs []ast.Spec

amountOfGroups := len(imports)
var importSlice []string
for _, group := range imports {
importSlice = append(importSlice, group...)
}
if len(importSlice) == 1 {
return []ast.Spec{&ast.ImportSpec{
Path: &ast.BasicLit{Value: importWithComment(importSlice[0], commentsMetadata), Kind: tok},
}}
}
for i, group := range imports {
for _, imprt := range group {
spec := &ast.ImportSpec{
Expand Down
68 changes: 68 additions & 0 deletions reviser/file_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -270,7 +270,27 @@ import (
wantChange: true,
wantErr: false,
},
{
name: "success with single std deps only",
args: args{
projectName: "github.com/incu6us/goimports-reviser",
filePath: "./testdata/example.go",
fileContent: `package testdata
import "log"
// nolint:gomnd
`,
},
want: `package testdata
import "log"
// nolint:gomnd
`,
wantChange: false,
wantErr: false,
},
{
name: "success with third-party deps only",
args: args{
Expand All @@ -297,6 +317,27 @@ import (
wantChange: true,
wantErr: false,
},
{
name: "success with single third-party deps",
args: args{
projectName: "github.com/incu6us/goimports-reviser",
filePath: "./testdata/example.go",
fileContent: `package testdata
import "golang.org/x/exp/slices"
// nolint:gomnd
`,
},
want: `package testdata
import "golang.org/x/exp/slices"
// nolint:gomnd
`,
wantChange: false,
wantErr: false,
},

{
name: "success with project deps only",
Expand Down Expand Up @@ -510,6 +551,33 @@ import (
"errors"
"fmt"
)
`,
wantChange: false,
wantErr: false,
},
{
name: "preserves cgo import with single std deps",
args: args{
projectName: "github.com/incu6us/goimports-reviser",
filePath: "./testdata/cgo_example.go",
fileContent: `package testdata
/*
#include <stdlib.h>
*/
import "C"
import "errors"
`,
},
want: `package testdata
/*
#include <stdlib.h>
*/
import "C"
import "errors"
`,
wantChange: false,
wantErr: false,
Expand Down

0 comments on commit 6c22ddd

Please sign in to comment.