go

Golang import grouping by package


I see that Go has goimports to help with import grouping, but I'm wondering if anyone has created a package to group imports in groupings by some pattern?

Go imports does this a little by enforcing at least two groupings stdlib and everything else; however, my company has a policy of grouping imports in 4 groups

import (
    stdlib

    current_project

    company

    all others 
)

is there a tool that can automatically do this?


Solution

  • The latest version of goimports support -local flag. Quoting this commit message:

    For example, running goimports -local example.com/ might produce

    import (
        "database/sql"
        "io"
        "strconv"
    
        "golang.org/x/net/context"
    
        "example.com/foo/bar"
        "example.com/foo/baz"
    )