Skip to content

Commit 8fceb7f

Browse files
committed
Fix #209: support goimports.local-prefix option for goimports
1 parent 6aeecb7 commit 8fceb7f

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

49 files changed

+114
-51
lines changed

.golangci.example.yml

+4
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,10 @@ linters-settings:
6868
gofmt:
6969
# simplify code: gofmt with `-s` option, true by default
7070
simplify: true
71+
goimports:
72+
# put imports beginning with prefix after 3rd-party packages;
73+
# it's a comma-separated list of prefixes
74+
local-prefixes: github.com/org/project
7175
gocyclo:
7276
# minimal code complexity to report, 30 by default (but we recommend 10-20)
7377
min-complexity: 10

.golangci.yml

+2
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ linters-settings:
2222
locale: US
2323
lll:
2424
line-length: 140
25+
goimports:
26+
local-prefixes: github.com/golangci/golangci-lint
2527

2628
linters:
2729
enable-all: true

README.md

+6
Original file line numberDiff line numberDiff line change
@@ -518,6 +518,10 @@ linters-settings:
518518
gofmt:
519519
# simplify code: gofmt with `-s` option, true by default
520520
simplify: true
521+
goimports:
522+
# put imports beginning with prefix after 3rd-party packages;
523+
# it's a comma-separated list of prefixes
524+
local-prefixes: github.com/org/project
521525
gocyclo:
522526
# minimal code complexity to report, 30 by default (but we recommend 10-20)
523527
min-complexity: 10
@@ -655,6 +659,8 @@ linters-settings:
655659
locale: US
656660
lll:
657661
line-length: 140
662+
goimports:
663+
local-prefixes: github.com/golangci/golangci-lint
658664

659665
linters:
660666
enable-all: true

pkg/commands/executor.go

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,15 @@
11
package commands
22

33
import (
4+
"github.com/spf13/cobra"
5+
"github.com/spf13/pflag"
6+
47
"github.com/golangci/golangci-lint/pkg/config"
58
"github.com/golangci/golangci-lint/pkg/goutil"
69
"github.com/golangci/golangci-lint/pkg/lint"
710
"github.com/golangci/golangci-lint/pkg/lint/lintersdb"
811
"github.com/golangci/golangci-lint/pkg/logutils"
912
"github.com/golangci/golangci-lint/pkg/report"
10-
"github.com/spf13/cobra"
11-
"github.com/spf13/pflag"
1213
)
1314

1415
type Executor struct {

pkg/commands/help.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,10 @@ import (
66
"strings"
77

88
"github.com/fatih/color"
9+
"github.com/spf13/cobra"
10+
911
"github.com/golangci/golangci-lint/pkg/lint/linter"
1012
"github.com/golangci/golangci-lint/pkg/logutils"
11-
"github.com/spf13/cobra"
1213
)
1314

1415
func (e *Executor) initHelp() {

pkg/commands/linters.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,9 @@ import (
55
"os"
66

77
"github.com/fatih/color"
8-
"github.com/golangci/golangci-lint/pkg/lint/linter"
98
"github.com/spf13/cobra"
9+
10+
"github.com/golangci/golangci-lint/pkg/lint/linter"
1011
)
1112

1213
func (e *Executor) initLinters() {

pkg/commands/root.go

+3-2
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,11 @@ import (
66
"runtime"
77
"runtime/pprof"
88

9-
"github.com/golangci/golangci-lint/pkg/config"
10-
"github.com/golangci/golangci-lint/pkg/logutils"
119
"github.com/spf13/cobra"
1210
"github.com/spf13/pflag"
11+
12+
"github.com/golangci/golangci-lint/pkg/config"
13+
"github.com/golangci/golangci-lint/pkg/logutils"
1314
)
1415

1516
func (e *Executor) persistentPreRun(cmd *cobra.Command, args []string) {

pkg/commands/run.go

+4-3
Original file line numberDiff line numberDiff line change
@@ -11,16 +11,17 @@ import (
1111
"time"
1212

1313
"github.com/fatih/color"
14+
"github.com/pkg/errors"
15+
"github.com/spf13/cobra"
16+
"github.com/spf13/pflag"
17+
1418
"github.com/golangci/golangci-lint/pkg/config"
1519
"github.com/golangci/golangci-lint/pkg/exitcodes"
1620
"github.com/golangci/golangci-lint/pkg/lint"
1721
"github.com/golangci/golangci-lint/pkg/lint/lintersdb"
1822
"github.com/golangci/golangci-lint/pkg/logutils"
1923
"github.com/golangci/golangci-lint/pkg/printers"
2024
"github.com/golangci/golangci-lint/pkg/result"
21-
"github.com/pkg/errors"
22-
"github.com/spf13/cobra"
23-
"github.com/spf13/pflag"
2425
)
2526

2627
func getDefaultExcludeHelp() string {

pkg/config/config.go

+3
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,9 @@ type LintersSettings struct {
127127
Gofmt struct {
128128
Simplify bool
129129
}
130+
Goimports struct {
131+
LocalPrefixes string `mapstructure:"local-prefixes"`
132+
}
130133
Gocyclo struct {
131134
MinComplexity int `mapstructure:"min-complexity"`
132135
}

pkg/config/reader.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,10 @@ import (
77
"path/filepath"
88
"strings"
99

10+
"github.com/spf13/viper"
11+
1012
"github.com/golangci/golangci-lint/pkg/fsutils"
1113
"github.com/golangci/golangci-lint/pkg/logutils"
12-
"github.com/spf13/viper"
1314
)
1415

1516
type FileReader struct {

pkg/golinters/deadcode.go

+1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import (
55
"fmt"
66

77
deadcodeAPI "github.com/golangci/go-misc/deadcode"
8+
89
"github.com/golangci/golangci-lint/pkg/lint/linter"
910
"github.com/golangci/golangci-lint/pkg/result"
1011
)

pkg/golinters/depguard.go

+1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import (
66
"strings"
77

88
depguardAPI "github.com/OpenPeeDeeP/depguard"
9+
910
"github.com/golangci/golangci-lint/pkg/lint/linter"
1011
"github.com/golangci/golangci-lint/pkg/result"
1112
)

pkg/golinters/dupl.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,11 @@ import (
66
"go/token"
77

88
duplAPI "github.com/golangci/dupl"
9+
"github.com/pkg/errors"
10+
911
"github.com/golangci/golangci-lint/pkg/fsutils"
1012
"github.com/golangci/golangci-lint/pkg/lint/linter"
1113
"github.com/golangci/golangci-lint/pkg/result"
12-
"github.com/pkg/errors"
1314
)
1415

1516
type Dupl struct{}

pkg/golinters/errcheck.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,11 @@ import (
77
"os"
88

99
errcheckAPI "github.com/golangci/errcheck/golangci"
10+
"github.com/pkg/errors"
11+
1012
"github.com/golangci/golangci-lint/pkg/config"
1113
"github.com/golangci/golangci-lint/pkg/lint/linter"
1214
"github.com/golangci/golangci-lint/pkg/result"
13-
"github.com/pkg/errors"
1415
)
1516

1617
type Errcheck struct{}

pkg/golinters/gas.go

+3-2
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,11 @@ import (
88
"log"
99
"strconv"
1010

11-
"github.com/golangci/golangci-lint/pkg/lint/linter"
12-
"github.com/golangci/golangci-lint/pkg/result"
1311
"github.com/golangci/gosec"
1412
"github.com/golangci/gosec/rules"
13+
14+
"github.com/golangci/golangci-lint/pkg/lint/linter"
15+
"github.com/golangci/golangci-lint/pkg/result"
1516
)
1617

1718
type Gosec struct{}

pkg/golinters/goconst.go

+1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import (
55
"fmt"
66

77
goconstAPI "github.com/golangci/goconst"
8+
89
"github.com/golangci/golangci-lint/pkg/lint/linter"
910
"github.com/golangci/golangci-lint/pkg/result"
1011
)

pkg/golinters/gocyclo.go

+1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import (
66
"sort"
77

88
gocycloAPI "github.com/golangci/gocyclo/pkg/gocyclo"
9+
910
"github.com/golangci/golangci-lint/pkg/lint/linter"
1011
"github.com/golangci/golangci-lint/pkg/result"
1112
)

pkg/golinters/gofmt.go

+5-1
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,15 @@ import (
66
"fmt"
77
"go/token"
88

9+
"golang.org/x/tools/imports"
10+
911
gofmtAPI "github.com/golangci/gofmt/gofmt"
1012
goimportsAPI "github.com/golangci/gofmt/goimports"
13+
"sourcegraph.com/sourcegraph/go-diff/diff"
14+
1115
"github.com/golangci/golangci-lint/pkg/lint/linter"
1216
"github.com/golangci/golangci-lint/pkg/logutils"
1317
"github.com/golangci/golangci-lint/pkg/result"
14-
"sourcegraph.com/sourcegraph/go-diff/diff"
1518
)
1619

1720
type Gofmt struct {
@@ -109,6 +112,7 @@ func (g Gofmt) Run(ctx context.Context, lintCtx *linter.Context) ([]result.Issue
109112
var diff []byte
110113
var err error
111114
if g.UseGoimports {
115+
imports.LocalPrefix = lintCtx.Settings().Goimports.LocalPrefixes
112116
diff, err = goimportsAPI.Run(f)
113117
} else {
114118
diff, err = gofmtAPI.Run(f, lintCtx.Settings().Gofmt.Simplify)

pkg/golinters/golint.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,10 @@ import (
66
"go/ast"
77
"go/token"
88

9+
lintAPI "github.com/golangci/lint-1"
10+
911
"github.com/golangci/golangci-lint/pkg/lint/linter"
1012
"github.com/golangci/golangci-lint/pkg/result"
11-
lintAPI "github.com/golangci/lint-1"
1213
)
1314

1415
type Golint struct{}

pkg/golinters/govet.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,11 @@ import (
55
"go/ast"
66
"go/token"
77

8+
govetAPI "github.com/golangci/govet"
9+
810
"github.com/golangci/golangci-lint/pkg/fsutils"
911
"github.com/golangci/golangci-lint/pkg/lint/linter"
1012
"github.com/golangci/golangci-lint/pkg/result"
11-
govetAPI "github.com/golangci/govet"
1213
)
1314

1415
type Govet struct{}

pkg/golinters/ineffassign.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,10 @@ import (
44
"context"
55
"fmt"
66

7+
ineffassignAPI "github.com/golangci/ineffassign"
8+
79
"github.com/golangci/golangci-lint/pkg/lint/linter"
810
"github.com/golangci/golangci-lint/pkg/result"
9-
ineffassignAPI "github.com/golangci/ineffassign"
1011
)
1112

1213
type Ineffassign struct{}

pkg/golinters/interfacer.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,10 @@ package golinters
33
import (
44
"context"
55

6+
"github.com/golangci/interfacer/check"
7+
68
"github.com/golangci/golangci-lint/pkg/lint/linter"
79
"github.com/golangci/golangci-lint/pkg/result"
8-
"github.com/golangci/interfacer/check"
910
)
1011

1112
type Interfacer struct{}

pkg/golinters/maligned.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,10 @@ import (
44
"context"
55
"fmt"
66

7+
malignedAPI "github.com/golangci/maligned"
8+
79
"github.com/golangci/golangci-lint/pkg/lint/linter"
810
"github.com/golangci/golangci-lint/pkg/result"
9-
malignedAPI "github.com/golangci/maligned"
1011
)
1112

1213
type Maligned struct{}

pkg/golinters/megacheck.go

+4-3
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,13 @@ import (
1111
"github.com/golangci/go-tools/simple"
1212
"github.com/golangci/go-tools/staticcheck"
1313
"github.com/golangci/go-tools/unused"
14-
"github.com/golangci/golangci-lint/pkg/fsutils"
15-
"github.com/golangci/golangci-lint/pkg/lint/linter"
16-
"github.com/golangci/golangci-lint/pkg/result"
1714
"github.com/golangci/tools/go/ssa"
1815
"golang.org/x/tools/go/loader"
1916
"golang.org/x/tools/go/packages"
17+
18+
"github.com/golangci/golangci-lint/pkg/fsutils"
19+
"github.com/golangci/golangci-lint/pkg/lint/linter"
20+
"github.com/golangci/golangci-lint/pkg/result"
2021
)
2122

2223
const megacheckName = "megacheck"

pkg/golinters/misspell.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,10 @@ import (
77
"io/ioutil"
88
"strings"
99

10+
"github.com/golangci/misspell"
11+
1012
"github.com/golangci/golangci-lint/pkg/lint/linter"
1113
"github.com/golangci/golangci-lint/pkg/result"
12-
"github.com/golangci/misspell"
1314
)
1415

1516
type Misspell struct{}

pkg/golinters/prealloc.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,10 @@ import (
55
"fmt"
66
"go/ast"
77

8+
"github.com/golangci/prealloc"
9+
810
"github.com/golangci/golangci-lint/pkg/lint/linter"
911
"github.com/golangci/golangci-lint/pkg/result"
10-
"github.com/golangci/prealloc"
1112
)
1213

1314
type Prealloc struct{}

pkg/golinters/structcheck.go

+1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import (
55
"fmt"
66

77
structcheckAPI "github.com/golangci/check/cmd/structcheck"
8+
89
"github.com/golangci/golangci-lint/pkg/lint/linter"
910
"github.com/golangci/golangci-lint/pkg/result"
1011
)

pkg/golinters/typecheck.go

+3-2
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,11 @@ import (
77
"strconv"
88
"strings"
99

10-
"github.com/golangci/golangci-lint/pkg/lint/linter"
11-
"github.com/golangci/golangci-lint/pkg/result"
1210
"github.com/pkg/errors"
1311
"golang.org/x/tools/go/packages"
12+
13+
"github.com/golangci/golangci-lint/pkg/lint/linter"
14+
"github.com/golangci/golangci-lint/pkg/result"
1415
)
1516

1617
type TypeCheck struct{}

pkg/golinters/unconvert.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,10 @@ package golinters
33
import (
44
"context"
55

6+
unconvertAPI "github.com/golangci/unconvert"
7+
68
"github.com/golangci/golangci-lint/pkg/lint/linter"
79
"github.com/golangci/golangci-lint/pkg/result"
8-
unconvertAPI "github.com/golangci/unconvert"
910
)
1011

1112
type Unconvert struct{}

pkg/golinters/unparam.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,10 @@ package golinters
33
import (
44
"context"
55

6+
"github.com/golangci/unparam/check"
7+
68
"github.com/golangci/golangci-lint/pkg/lint/linter"
79
"github.com/golangci/golangci-lint/pkg/result"
8-
"github.com/golangci/unparam/check"
910
)
1011

1112
type Unparam struct{}

pkg/golinters/util.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,10 @@ import (
88
"strings"
99
"sync"
1010

11+
gopackages "golang.org/x/tools/go/packages"
12+
1113
"github.com/golangci/golangci-lint/pkg/config"
1214
"github.com/golangci/golangci-lint/pkg/lint/linter"
13-
gopackages "golang.org/x/tools/go/packages"
1415
)
1516

1617
func formatCode(code string, _ *config.Config) string {

0 commit comments

Comments
 (0)