Skip to content

Feature: new out-format for vim-quickfix #895

@kyoh86

Description

@kyoh86
  • Yes, I'm using a binary release within 2 latest major releases. Only such installations are supported.
  • Yes, I've searched similar issues on GitHub and didn't find any.
  • Yes, I've included all information below (version, config, etc).

Please include the following information:

Version of golangci-lint
$ golangci-lint --version
golangci-lint has version 1.21.0 built from 645e794 on 2019-10-15T18:16:56Z
Config file
$ cat .golangci.yml
linters:
  enable:
    - unparam
    - scopelint
    - golint
    - gochecknoinits
    - bodyclose
    - depguard
    - dogsled
    - dupl
    - gochecknoinits
    - gocognit
    - goconst
    - gocritic
    - gocyclo
    - godox
    - gofmt
    - goimports
    - golint
    - gosec
    - maligned
    - misspell
    - nakedret
    - prealloc
    - stylecheck
    - unconvert
    - whitespace
linters-settings:
  gocritic:
    disabled-checks:
      - elseif
Go environment
$ go version && go env
go version go1.13.5 linux/amd64
Verbose output of running
$ golangci-lint run -v
INFO [config_reader] Config search paths: [./ /home/kyoh86/Projects/github.com/kyoh86/gogh /home/kyoh86/Projects/github.com/kyoh86 /home/kyoh86/Projects/github.com /home/kyoh86/Projects /home/kyoh86 /home /] 
INFO [config_reader] Used config file .golangci.yml 
INFO [lintersdb] Active 33 linters: [bodyclose deadcode depguard dogsled dupl errcheck gochecknoinits gocognit goconst gocritic gocyclo godox gofmt goimports golint gosec gosimple govet ineffassign maligned misspell nakedret prealloc scopelint staticcheck structcheck stylecheck typec
heck unconvert unparam unused varcheck whitespace] 
INFO [loader] Go packages loading at mode 575 (types_sizes|compiled_files|deps|imports|name|exports_file|files) took 153.014097ms 
INFO [runner/filename_unadjuster] Pre-built 0 adjustments in 5.028859ms 
INFO [runner/unused/goanalysis] analyzers took 0s with no stages 
INFO [runner/goanalysis_metalinter/goanalysis] analyzers took 0s with no stages 
INFO [runner/max_same_issues] 1/4 issues with text "`charactor` is a misspelling of `character`" were hidden, use --max-same-issues 
INFO [runner/max_same_issues] 1/4 issues with text "unnecessary trailing newline" were hidden, use --max-same-issues 
INFO [runner] Issues before processing: 196, after processing: 22 
INFO [runner] Processors filtering stat (out/in): path_prettifier: 196/196, nolint: 32/32, uniq_by_line: 25/32, exclude-rules: 32/32, path_shortener: 22/22, cgo: 196/196, skip_files: 196/196, autogenerated_exclude: 196/196, exclude: 32/196, max_same_issues: 22/24, source_code: 22/22,
 max_per_file_from_linter: 24/25, max_from_linter: 22/22, filename_unadjuster: 196/196, skip_dirs: 196/196, identifier_marker: 196/196, diff: 25/25 
INFO [runner] processing took 17.376086ms with stages: exclude: 7.484844ms, identifier_marker: 5.247309ms, nolint: 2.973583ms, path_prettifier: 960.599µs, autogenerated_exclude: 318.277µs, source_code: 157.936µs, skip_dirs: 146.441µs, max_same_issues: 42.899µs, cgo: 12.292µs, uniq_by
_line: 10.535µs, filename_unadjuster: 6.533µs, max_from_linter: 5.605µs, path_shortener: 5.505µs, max_per_file_from_linter: 2.994µs, diff: 267ns, skip_files: 256ns, exclude-rules: 211ns 
INFO [runner] linters took 107.838362ms with stages: unused: 64.220035ms, goanalysis_metalinter: 26.045003ms 
command/where_test.go:97: unnecessary trailing newline (whitespace)

}
sh/assets.go:14: File is not `gofmt`-ed with `-s` (gofmt)
                "/src": []string{
config/path_list_test.go:15: unnecessary leading newline (whitespace)
func TestPathListOption(t *testing.T) {

config/get.go:24: G101: Potential hardcoded credentials (gosec)
        envGoghGitHubToken     = "GOGH_GITHUB_TOKEN"
config/accessor.go:13:2: error var EmptyValue should have name of the form ErrFoo (golint)
        EmptyValue           = errors.New("empty value")
        ^
config/accessor.go:14:2: error var RemoveFromMonoOption should have name of the form ErrFoo (golint)
        RemoveFromMonoOption = errors.New("removing from mono option")
        ^
config/accessor.go:15:2: error var InvalidOptionName should have name of the form ErrFoo (golint)
        InvalidOptionName    = errors.New("invalid option name")
        ^
config/accessor.go:16:2: error var TokenMustNotSave should have name of the form ErrFoo (golint)
        TokenMustNotSave     = errors.New("token must not save")
        ^
config/accessor.go:48:1: don't use `init` function (gochecknoinits)
func init() {
^
config/accessor_test.go:18:22: string `token1` has 3 occurrences, make it a constant (goconst)
                cfg.GitHub.Token = "token1"
                                   ^
config/accessor_test.go:19:21: string `hostx1` has 3 occurrences, make it a constant (goconst)
                cfg.GitHub.Host = "hostx1"
                                  ^
config/accessor_test.go:20:21: string `kyoh86` has 3 occurrences, make it a constant (goconst)
                cfg.GitHub.User = "kyoh86"
                                  ^
config/accessor_test.go:21:19: string `trace` has 3 occurrences, make it a constant (goconst)
                cfg.Log.Level = "trace"
                                ^
gogh/formatter_test.go:130: unnecessary trailing newline (whitespace)

}
gogh/local_test.go:71: unnecessary trailing newline (whitespace)

}
gogh/local.go:23:2: error var ProjectNotFound should have name of the form ErrFoo (golint)
        ProjectNotFound = errors.New("project not found")
        ^
gogh/local.go:24:2: comment on exported var `ProjectAlreadyExists` should be of the form `ProjectAlreadyExists ...` (golint)
        // ProjectNotFound is the error will be raised when a project already exists.
        ^
gogh/local.go:25:2: error var ProjectAlreadyExists should have name of the form ErrFoo (golint)
        ProjectAlreadyExists = errors.New("project already exists")
        ^
gogh/local_test.go:66:68: `charactor` is a misspelling of `character` (misspell)
        t.Run("expect to fail to parse project name that contains invalid charactor", func(t *testing.T) {
                                                                          ^
gogh/repo_test.go:85:47: `charactor` is a misspelling of `character` (misspell)
        t.Run("fail when owner name contains invalid charactor", func(t *testing.T) {
                                                     ^
gogh/repo_test.go:103:49: `charactor` is a misspelling of `character` (misspell)
        t.Run("fail when project name contains invalid charactor", func(t *testing.T) {
                                                       ^
gogh/repo.go:176:22: response body must be closed (bodyclose)
        res, err := http.Get(url.String())
                            ^
INFO File cache stats: 11 entries of total size 56.8KiB 
INFO Memory: 4 samples, avg is 69.4MB, max is 69.9MB 
INFO Execution took 281.881252ms         

summary

I want to get a quickfix-list for vim with golangci-lint.
quickfix-list is formatted as errorformat.
It's supported by a go-library: https://github.com/reviewdog/errorformat

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or improvementstaleNo recent correspondence or work activity

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions