goimports-reviser

command module
v2.1.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 16, 2020 License: MIT Imports: 8 Imported by: 0

README

goimports-reviser Tweet

'Status Badge' 'Release Badge' 'Quality Badge' codecov GitHub All Releases GitHub release (latest by date) goimports-reviser license Mentioned in Awesome Go

'logo'

Tool for Golang to sort goimports by 3-4 groups: std, general, local(which is optional) and project dependencies. Also, formatting for your code will be prepared(so, you don't need to use gofmt or goimports separately). Use additional options -rm-unused to remove unused imports and -set-alias to rewrite import aliases for versioned packages or for packages with additional prefix/suffix(example: opentracing "github.com/opentracing/opentracing-go"). -local - will create group for local imports. Values should be comma-separated.

The last two options (-rm-unused & -set-alias) will work only for projects using Go Modules.

Install

With Brew
brew tap incu6us/homebrew-tap
brew install incu6us/homebrew-tap/goimports-reviser
With Snap
snap install goimports-reviser

How To Use

'How To'

Before usage:

package testdata

import (
	"log"

	"github.com/incu6us/goimports-reviser/testdata/innderpkg"

	"bytes"

	"github.com/pkg/errors"
)

After usage:

package testdata

import (
	"bytes"
	"log"
	
	"github.com/pkg/errors"
	
	"github.com/incu6us/goimports-reviser/testdata/innderpkg"
)

Comments(not Docs) for imports is acceptable. Example:

package testdata

import (
    "fmt" // comments to the package here
)
Example with -local-option

Before usage:

package testdata // goimports-reviser/testdata

import (
	"fmt" //fmt package
	"github.com/pkg/errors" //custom package
	"github.com/incu6us/goimports-reviser/pkg" // this is a local package which is not a part of the project
	"goimports-reviser/pkg"
)

After usage:

package testdata // goimports-reviser/testdata

import (
	"fmt" // fmt package

	"github.com/pkg/errors" // custom package

	"github.com/incu6us/goimports-reviser/pkg" // this is a local package which is not a part of the project

	"goimports-reviser/pkg"
)
Options:
Usage of goimports-reviser:
  -file-path string
        File path to fix imports(ex.: ./reviser/reviser.go). Required parameter.
  -project-name string
        Your project name(ex.: github.com/incu6us/goimports-reviser). Required parameter.
  -local string
        Local package prefixes which will be placed after 3rd-party group(if defined). Values should be comma-separated. Optional parameters.
  -rm-unused
        Remove unused imports. Optional parameter.
  -set-alias
        Set alias for versioned package names, like 'github.com/go-pg/pg/v9'. In this case import will be set as 'pg "github.com/go-pg/pg/v9"'. Optional parameter.

Examples:

Cmd
goimports-reviser -project-name github.com/incu6us/goimports-reviser -file-path ./reviser/reviser.go -rm-unused -set-alias
Example, to configure it with JetBrains IDEs (via file watcher plugin):

example

Documentation

Overview

Tool for Golang to sort goimports by 3 groups: std, general and project dependencies. It will help you to keep your code cleaner.

Example:

goimports-reviser -project-name github.com/incu6us/goimports-reviser -file-path ./reviser/reviser.go -rm-unused

Input:

import (
	"log"

	"github.com/incu6us/goimports-reviser/testdata/innderpkg"

	"bytes"

	"github.com/pkg/errors"
)

Output:

 import (
	"bytes"
	"log"

	"github.com/pkg/errors"

	"github.com/incu6us/goimports-reviser/testdata/innderpkg"
 )

If you need to set package names explicitly(in import declaration), you can use additional option `-set-alias`.

More:

goimports-reviser -h

Directories

Path Synopsis
pkg
std
Code generated by ./gen/gen.go DO NOT EDIT.
Code generated by ./gen/gen.go DO NOT EDIT.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL