/gosimports

alias goimports='gosimports'

Primary LanguageGoBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

Note: CLI interface (such as options) is likely to change a few times before we reach 1.0.0

gosimports - simpler goimports

  • 🚀 Drop-in replacement for goimports
  • 💯 Prettier than goimports
  • 🔨 Originally forked from golang.org/x/tools/cmd/goimports

Motivation

This gosimports provides one solution to the goimports grouping/ordering problem.

Installation

Go

go install github.com/rinchsan/gosimports/cmd/gosimports@latest

Homebrew

brew install rinchsan/tap/gosimports

Binary

Download binaries from GitHub Releases

Example

import (
	"bufio"

	// basic comments

	/*
		block comments
	*/

	"github.com/rinchsan/gosimports/internal/imports"

	"errors"
	gocmd "github.com/rinchsan/gosimports/internal/gocommand"
	"flag"

	"runtime"
	_ "runtime/pprof" // trailing inline comments
	"strings"

)

$ gosimports -w 👍

import (
	"bufio"
	"errors"
	"flag"
	"runtime"
	_ "runtime/pprof" // trailing inline comments
	"strings"

	gocmd "github.com/rinchsan/gosimports/internal/gocommand"
	"github.com/rinchsan/gosimports/internal/imports"
)

while goimports formatting like below 👎

import (
	"bufio"

	// basic comments

	/*
		block comments
	*/

	"github.com/rinchsan/gosimports/internal/imports"

	"errors"
	"flag"

	gocmd "github.com/rinchsan/gosimports/internal/gocommand"

	"runtime"
	_ "runtime/pprof" // trailing inline comments
	"strings"
)

License

Copyright 2013 The Go Authors. All rights reserved.

Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.