https://github.com/nakabonne/fmtdiff
A goimports client as well as a parser of its result
https://github.com/nakabonne/fmtdiff
diff go go-library gofmt goimports golang parser
Last synced: 9 months ago
JSON representation
A goimports client as well as a parser of its result
- Host: GitHub
- URL: https://github.com/nakabonne/fmtdiff
- Owner: nakabonne
- License: mit
- Created: 2019-12-28T07:03:24.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2020-01-01T04:30:51.000Z (over 6 years ago)
- Last Synced: 2025-03-27T03:11:13.960Z (over 1 year ago)
- Topics: diff, go, go-library, gofmt, goimports, golang, parser
- Language: Go
- Homepage:
- Size: 41 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# fmtdiff
[](http://godoc.org/github.com/nakabonne/fmtdiff)
[](https://codecov.io/gh/nakabonne/fmtdiff)
A `goimports` client as well as a parser that parses the diff between an original file and formatted one. You can use it as a wrapper for [golang.org/x/tools/imports](https://godoc.org/golang.org/x/tools/imports).
goimports not only fixes imports, but also formats your code in the same style as gofmt, so `fmtdiff` means `importsdiff` substantially.
## Installation
```
go get github.com/nakabonne/fmtdiff
```
## Usage Example
```go
package main
import "github.com/nakabonne/fmtdiff"
func main() {
fileDiff, _ := fmtdiff.Process("/path/to/foo.go", &fmtdiff.Options{
LocalPrefixes: []string{"example.com/foo/bar"},
IgnoreComments: true,
FormatOnly: true,
})
}
```
Combined with [nakabonne/modpath](https://github.com/nakabonne/modpath), and then you can detect the local prefix from the `go.mod`.
```go
import (
"github.com/nakabonne/modpath"
"github.com/nakabonne/fmtdiff"
)
func main() {
prefix, _ := modpath.Run("/path/to/foo/bar")
fileDiff, _ := fmtdiff.Process("/path/to/foo.go", &fmtdiff.Options{
LocalPrefixes: []string{prefix},
})
}
```
## Thanks
Thanks to [sourcegraph/go-diff](https://github.com/sourcegraph/go-diff) for cool diff parser.