Fix #209: support goimports.local-prefix option for goimports

This commit is contained in:
Denis Isaev 2018-10-28 18:47:56 +03:00
parent 6aeecb7817
commit 8fceb7fc47
No known key found for this signature in database
GPG Key ID: A36A0EC8E27A1A01
49 changed files with 114 additions and 51 deletions

View File

@ -68,6 +68,10 @@ linters-settings:
gofmt:
# simplify code: gofmt with `-s` option, true by default
simplify: true
goimports:
# put imports beginning with prefix after 3rd-party packages;
# it's a comma-separated list of prefixes
local-prefixes: github.com/org/project
gocyclo:
# minimal code complexity to report, 30 by default (but we recommend 10-20)
min-complexity: 10

View File

@ -22,6 +22,8 @@ linters-settings:
locale: US
lll:
line-length: 140
goimports:
local-prefixes: github.com/golangci/golangci-lint
linters:
enable-all: true

View File

@ -518,6 +518,10 @@ linters-settings:
gofmt:
# simplify code: gofmt with `-s` option, true by default
simplify: true
goimports:
# put imports beginning with prefix after 3rd-party packages;
# it's a comma-separated list of prefixes
local-prefixes: github.com/org/project
gocyclo:
# minimal code complexity to report, 30 by default (but we recommend 10-20)
min-complexity: 10
@ -655,6 +659,8 @@ linters-settings:
locale: US
lll:
line-length: 140
goimports:
local-prefixes: github.com/golangci/golangci-lint
linters:
enable-all: true

View File

@ -1,14 +1,15 @@
package commands
import (
"github.com/spf13/cobra"
"github.com/spf13/pflag"
"github.com/golangci/golangci-lint/pkg/config"
"github.com/golangci/golangci-lint/pkg/goutil"
"github.com/golangci/golangci-lint/pkg/lint"
"github.com/golangci/golangci-lint/pkg/lint/lintersdb"
"github.com/golangci/golangci-lint/pkg/logutils"
"github.com/golangci/golangci-lint/pkg/report"
"github.com/spf13/cobra"
"github.com/spf13/pflag"
)
type Executor struct {

View File

@ -6,9 +6,10 @@ import (
"strings"
"github.com/fatih/color"
"github.com/spf13/cobra"
"github.com/golangci/golangci-lint/pkg/lint/linter"
"github.com/golangci/golangci-lint/pkg/logutils"
"github.com/spf13/cobra"
)
func (e *Executor) initHelp() {

View File

@ -5,8 +5,9 @@ import (
"os"
"github.com/fatih/color"
"github.com/golangci/golangci-lint/pkg/lint/linter"
"github.com/spf13/cobra"
"github.com/golangci/golangci-lint/pkg/lint/linter"
)
func (e *Executor) initLinters() {

View File

@ -6,10 +6,11 @@ import (
"runtime"
"runtime/pprof"
"github.com/golangci/golangci-lint/pkg/config"
"github.com/golangci/golangci-lint/pkg/logutils"
"github.com/spf13/cobra"
"github.com/spf13/pflag"
"github.com/golangci/golangci-lint/pkg/config"
"github.com/golangci/golangci-lint/pkg/logutils"
)
func (e *Executor) persistentPreRun(cmd *cobra.Command, args []string) {

View File

@ -11,6 +11,10 @@ import (
"time"
"github.com/fatih/color"
"github.com/pkg/errors"
"github.com/spf13/cobra"
"github.com/spf13/pflag"
"github.com/golangci/golangci-lint/pkg/config"
"github.com/golangci/golangci-lint/pkg/exitcodes"
"github.com/golangci/golangci-lint/pkg/lint"
@ -18,9 +22,6 @@ import (
"github.com/golangci/golangci-lint/pkg/logutils"
"github.com/golangci/golangci-lint/pkg/printers"
"github.com/golangci/golangci-lint/pkg/result"
"github.com/pkg/errors"
"github.com/spf13/cobra"
"github.com/spf13/pflag"
)
func getDefaultExcludeHelp() string {

View File

@ -127,6 +127,9 @@ type LintersSettings struct {
Gofmt struct {
Simplify bool
}
Goimports struct {
LocalPrefixes string `mapstructure:"local-prefixes"`
}
Gocyclo struct {
MinComplexity int `mapstructure:"min-complexity"`
}

View File

@ -7,9 +7,10 @@ import (
"path/filepath"
"strings"
"github.com/spf13/viper"
"github.com/golangci/golangci-lint/pkg/fsutils"
"github.com/golangci/golangci-lint/pkg/logutils"
"github.com/spf13/viper"
)
type FileReader struct {

View File

@ -5,6 +5,7 @@ import (
"fmt"
deadcodeAPI "github.com/golangci/go-misc/deadcode"
"github.com/golangci/golangci-lint/pkg/lint/linter"
"github.com/golangci/golangci-lint/pkg/result"
)

View File

@ -6,6 +6,7 @@ import (
"strings"
depguardAPI "github.com/OpenPeeDeeP/depguard"
"github.com/golangci/golangci-lint/pkg/lint/linter"
"github.com/golangci/golangci-lint/pkg/result"
)

View File

@ -6,10 +6,11 @@ import (
"go/token"
duplAPI "github.com/golangci/dupl"
"github.com/pkg/errors"
"github.com/golangci/golangci-lint/pkg/fsutils"
"github.com/golangci/golangci-lint/pkg/lint/linter"
"github.com/golangci/golangci-lint/pkg/result"
"github.com/pkg/errors"
)
type Dupl struct{}

View File

@ -7,10 +7,11 @@ import (
"os"
errcheckAPI "github.com/golangci/errcheck/golangci"
"github.com/pkg/errors"
"github.com/golangci/golangci-lint/pkg/config"
"github.com/golangci/golangci-lint/pkg/lint/linter"
"github.com/golangci/golangci-lint/pkg/result"
"github.com/pkg/errors"
)
type Errcheck struct{}

View File

@ -8,10 +8,11 @@ import (
"log"
"strconv"
"github.com/golangci/golangci-lint/pkg/lint/linter"
"github.com/golangci/golangci-lint/pkg/result"
"github.com/golangci/gosec"
"github.com/golangci/gosec/rules"
"github.com/golangci/golangci-lint/pkg/lint/linter"
"github.com/golangci/golangci-lint/pkg/result"
)
type Gosec struct{}

View File

@ -5,6 +5,7 @@ import (
"fmt"
goconstAPI "github.com/golangci/goconst"
"github.com/golangci/golangci-lint/pkg/lint/linter"
"github.com/golangci/golangci-lint/pkg/result"
)

View File

@ -6,6 +6,7 @@ import (
"sort"
gocycloAPI "github.com/golangci/gocyclo/pkg/gocyclo"
"github.com/golangci/golangci-lint/pkg/lint/linter"
"github.com/golangci/golangci-lint/pkg/result"
)

View File

@ -6,12 +6,15 @@ import (
"fmt"
"go/token"
"golang.org/x/tools/imports"
gofmtAPI "github.com/golangci/gofmt/gofmt"
goimportsAPI "github.com/golangci/gofmt/goimports"
"sourcegraph.com/sourcegraph/go-diff/diff"
"github.com/golangci/golangci-lint/pkg/lint/linter"
"github.com/golangci/golangci-lint/pkg/logutils"
"github.com/golangci/golangci-lint/pkg/result"
"sourcegraph.com/sourcegraph/go-diff/diff"
)
type Gofmt struct {
@ -109,6 +112,7 @@ func (g Gofmt) Run(ctx context.Context, lintCtx *linter.Context) ([]result.Issue
var diff []byte
var err error
if g.UseGoimports {
imports.LocalPrefix = lintCtx.Settings().Goimports.LocalPrefixes
diff, err = goimportsAPI.Run(f)
} else {
diff, err = gofmtAPI.Run(f, lintCtx.Settings().Gofmt.Simplify)

View File

@ -6,9 +6,10 @@ import (
"go/ast"
"go/token"
lintAPI "github.com/golangci/lint-1"
"github.com/golangci/golangci-lint/pkg/lint/linter"
"github.com/golangci/golangci-lint/pkg/result"
lintAPI "github.com/golangci/lint-1"
)
type Golint struct{}

View File

@ -5,10 +5,11 @@ import (
"go/ast"
"go/token"
govetAPI "github.com/golangci/govet"
"github.com/golangci/golangci-lint/pkg/fsutils"
"github.com/golangci/golangci-lint/pkg/lint/linter"
"github.com/golangci/golangci-lint/pkg/result"
govetAPI "github.com/golangci/govet"
)
type Govet struct{}

View File

@ -4,9 +4,10 @@ import (
"context"
"fmt"
ineffassignAPI "github.com/golangci/ineffassign"
"github.com/golangci/golangci-lint/pkg/lint/linter"
"github.com/golangci/golangci-lint/pkg/result"
ineffassignAPI "github.com/golangci/ineffassign"
)
type Ineffassign struct{}

View File

@ -3,9 +3,10 @@ package golinters
import (
"context"
"github.com/golangci/interfacer/check"
"github.com/golangci/golangci-lint/pkg/lint/linter"
"github.com/golangci/golangci-lint/pkg/result"
"github.com/golangci/interfacer/check"
)
type Interfacer struct{}

View File

@ -4,9 +4,10 @@ import (
"context"
"fmt"
malignedAPI "github.com/golangci/maligned"
"github.com/golangci/golangci-lint/pkg/lint/linter"
"github.com/golangci/golangci-lint/pkg/result"
malignedAPI "github.com/golangci/maligned"
)
type Maligned struct{}

View File

@ -11,12 +11,13 @@ import (
"github.com/golangci/go-tools/simple"
"github.com/golangci/go-tools/staticcheck"
"github.com/golangci/go-tools/unused"
"github.com/golangci/golangci-lint/pkg/fsutils"
"github.com/golangci/golangci-lint/pkg/lint/linter"
"github.com/golangci/golangci-lint/pkg/result"
"github.com/golangci/tools/go/ssa"
"golang.org/x/tools/go/loader"
"golang.org/x/tools/go/packages"
"github.com/golangci/golangci-lint/pkg/fsutils"
"github.com/golangci/golangci-lint/pkg/lint/linter"
"github.com/golangci/golangci-lint/pkg/result"
)
const megacheckName = "megacheck"

View File

@ -7,9 +7,10 @@ import (
"io/ioutil"
"strings"
"github.com/golangci/misspell"
"github.com/golangci/golangci-lint/pkg/lint/linter"
"github.com/golangci/golangci-lint/pkg/result"
"github.com/golangci/misspell"
)
type Misspell struct{}

View File

@ -5,9 +5,10 @@ import (
"fmt"
"go/ast"
"github.com/golangci/prealloc"
"github.com/golangci/golangci-lint/pkg/lint/linter"
"github.com/golangci/golangci-lint/pkg/result"
"github.com/golangci/prealloc"
)
type Prealloc struct{}

View File

@ -5,6 +5,7 @@ import (
"fmt"
structcheckAPI "github.com/golangci/check/cmd/structcheck"
"github.com/golangci/golangci-lint/pkg/lint/linter"
"github.com/golangci/golangci-lint/pkg/result"
)

View File

@ -7,10 +7,11 @@ import (
"strconv"
"strings"
"github.com/golangci/golangci-lint/pkg/lint/linter"
"github.com/golangci/golangci-lint/pkg/result"
"github.com/pkg/errors"
"golang.org/x/tools/go/packages"
"github.com/golangci/golangci-lint/pkg/lint/linter"
"github.com/golangci/golangci-lint/pkg/result"
)
type TypeCheck struct{}

View File

@ -3,9 +3,10 @@ package golinters
import (
"context"
unconvertAPI "github.com/golangci/unconvert"
"github.com/golangci/golangci-lint/pkg/lint/linter"
"github.com/golangci/golangci-lint/pkg/result"
unconvertAPI "github.com/golangci/unconvert"
)
type Unconvert struct{}

View File

@ -3,9 +3,10 @@ package golinters
import (
"context"
"github.com/golangci/unparam/check"
"github.com/golangci/golangci-lint/pkg/lint/linter"
"github.com/golangci/golangci-lint/pkg/result"
"github.com/golangci/unparam/check"
)
type Unparam struct{}

View File

@ -8,9 +8,10 @@ import (
"strings"
"sync"
gopackages "golang.org/x/tools/go/packages"
"github.com/golangci/golangci-lint/pkg/config"
"github.com/golangci/golangci-lint/pkg/lint/linter"
gopackages "golang.org/x/tools/go/packages"
)
func formatCode(code string, _ *config.Config) string {

View File

@ -5,6 +5,7 @@ import (
"fmt"
varcheckAPI "github.com/golangci/check/cmd/varcheck"
"github.com/golangci/golangci-lint/pkg/lint/linter"
"github.com/golangci/golangci-lint/pkg/result"
)

View File

@ -9,8 +9,9 @@ import (
"strconv"
"strings"
"github.com/golangci/golangci-lint/pkg/logutils"
"github.com/pkg/errors"
"github.com/golangci/golangci-lint/pkg/logutils"
)
type Env struct {

View File

@ -8,8 +8,9 @@ import (
"strings"
"time"
"github.com/golangci/golangci-lint/pkg/logutils"
"golang.org/x/tools/go/packages"
"github.com/golangci/golangci-lint/pkg/logutils"
)
type File struct {

View File

@ -1,12 +1,13 @@
package linter
import (
"github.com/golangci/golangci-lint/pkg/config"
"github.com/golangci/golangci-lint/pkg/lint/astcache"
"github.com/golangci/golangci-lint/pkg/logutils"
"github.com/golangci/tools/go/ssa"
"golang.org/x/tools/go/loader"
"golang.org/x/tools/go/packages"
"github.com/golangci/golangci-lint/pkg/config"
"github.com/golangci/golangci-lint/pkg/lint/astcache"
"github.com/golangci/golangci-lint/pkg/logutils"
)
type Context struct {

View File

@ -4,9 +4,10 @@ import (
"sort"
"testing"
"github.com/stretchr/testify/assert"
"github.com/golangci/golangci-lint/pkg/config"
"github.com/golangci/golangci-lint/pkg/lint/linter"
"github.com/stretchr/testify/assert"
)
func TestGetEnabledLintersSet(t *testing.T) {

View File

@ -10,17 +10,18 @@ import (
"strings"
"time"
"github.com/golangci/tools/go/ssa"
"github.com/golangci/tools/go/ssa/ssautil"
"github.com/pkg/errors"
"golang.org/x/tools/go/loader"
"golang.org/x/tools/go/packages"
"github.com/golangci/golangci-lint/pkg/config"
"github.com/golangci/golangci-lint/pkg/exitcodes"
"github.com/golangci/golangci-lint/pkg/goutil"
"github.com/golangci/golangci-lint/pkg/lint/astcache"
"github.com/golangci/golangci-lint/pkg/lint/linter"
"github.com/golangci/golangci-lint/pkg/logutils"
"github.com/golangci/tools/go/ssa"
"github.com/golangci/tools/go/ssa/ssautil"
"github.com/pkg/errors"
"golang.org/x/tools/go/loader"
"golang.org/x/tools/go/packages"
)
type ContextLoader struct {

View File

@ -4,8 +4,9 @@ import (
"fmt"
"os"
"github.com/golangci/golangci-lint/pkg/exitcodes"
"github.com/sirupsen/logrus" //nolint:depguard
"github.com/golangci/golangci-lint/pkg/exitcodes"
)
type StderrLog struct {

View File

@ -7,6 +7,7 @@ import (
"text/tabwriter"
"github.com/fatih/color"
"github.com/golangci/golangci-lint/pkg/logutils"
"github.com/golangci/golangci-lint/pkg/result"
)

View File

@ -5,6 +5,7 @@ import (
"fmt"
"github.com/fatih/color"
"github.com/golangci/golangci-lint/pkg/logutils"
"github.com/golangci/golangci-lint/pkg/result"
)

View File

@ -4,9 +4,10 @@ import (
"path/filepath"
"strings"
"github.com/pkg/errors"
"github.com/golangci/golangci-lint/pkg/goutil"
"github.com/golangci/golangci-lint/pkg/result"
"github.com/pkg/errors"
)
type Cgo struct {

View File

@ -8,8 +8,9 @@ import (
"os"
"strings"
"github.com/golangci/golangci-lint/pkg/result"
"github.com/golangci/revgrep"
"github.com/golangci/golangci-lint/pkg/result"
)
type Diff struct {

View File

@ -3,8 +3,9 @@ package processors
import (
"testing"
"github.com/golangci/golangci-lint/pkg/result"
"github.com/stretchr/testify/assert"
"github.com/golangci/golangci-lint/pkg/result"
)
func newTextIssue(text string) result.Issue {

View File

@ -7,10 +7,11 @@ import (
"testing"
"github.com/golang/mock/gomock"
"github.com/stretchr/testify/assert"
"github.com/golangci/golangci-lint/pkg/lint/astcache"
"github.com/golangci/golangci-lint/pkg/logutils"
"github.com/golangci/golangci-lint/pkg/result"
"github.com/stretchr/testify/assert"
)
func newNolintFileIssue(line int, fromLinter string) result.Issue {

View File

@ -6,10 +6,11 @@ import (
"sort"
"strings"
"github.com/pkg/errors"
"github.com/golangci/golangci-lint/pkg/fsutils"
"github.com/golangci/golangci-lint/pkg/logutils"
"github.com/golangci/golangci-lint/pkg/result"
"github.com/pkg/errors"
)
type SkipDirs struct {

View File

@ -4,8 +4,9 @@ import (
"go/token"
"testing"
"github.com/golangci/golangci-lint/pkg/result"
"github.com/stretchr/testify/assert"
"github.com/golangci/golangci-lint/pkg/result"
)
func newFileIssue(file string) result.Issue {

View File

@ -13,9 +13,10 @@ import (
"testing"
"time"
"github.com/golangci/golangci-lint/pkg/config"
gops "github.com/mitchellh/go-ps"
"github.com/shirou/gopsutil/process"
"github.com/golangci/golangci-lint/pkg/config"
)
func chdir(b *testing.B, dir string) {

View File

@ -9,8 +9,9 @@ import (
"strings"
"testing"
"github.com/golangci/golangci-lint/pkg/exitcodes"
assert "github.com/stretchr/testify/require"
"github.com/golangci/golangci-lint/pkg/exitcodes"
)
func runGoErrchk(c *exec.Cmd, t *testing.T) {

View File

@ -13,9 +13,10 @@ import (
"syscall"
"testing"
assert "github.com/stretchr/testify/require"
"github.com/golangci/golangci-lint/pkg/exitcodes"
"github.com/golangci/golangci-lint/pkg/lint/lintersdb"
assert "github.com/stretchr/testify/require"
)
var root = filepath.Join("..", "...")