Closed5
reviveを導入する

revive はgo のlinter
開発にしか使わないし、linterなのでinstall はglobalにする。
やりやすいように諸々Makefileに記載しておく
.PHONY: lint tools.get
GOBIN = $(shell go env GOPATH)/bin
tools.get:
go install github.com/mgechev/revive@latest
lint:
$(GOBIN)/revive

Recommended setting があるのでrevive.tomlはそれをコピればいい
-config
の指定をしなければ default の設定が使われるが、編集したくなった時にファイルがないと不便だろう

試しにrevive が効くか試してみる
main.go
をつくり、怒られてみる
package main
import "fmt"
func main() {
out_put := "main called"
fmt.Println(out_put)
}
$ make lint
/home/uchida/.asdf/installs/golang/1.20.1/packages/bin/revive -config revive.toml -formatter friendly ./...
⚠ https://revive.run/r#var-naming don't use underscores in Go names; var out_put should be outPut
main.go:6:2
⚠ https://revive.run/r#package-comments should have a package comment
main.go:1:1
⚠ 2 problems (0 errors, 2 warnings)
Warnings:
1 var-naming
1 package-comments
動いてそうだ

ついでに go vet
も追加しておいて、Makefile
はこうなる
.PHONY: lint tools.get
GOBIN = $(shell go env GOPATH)/bin
tools.get:
go install github.com/mgechev/revive@latest
revive:
$(GOBIN)/revive -config revive.toml -formatter friendly ./...
vet:
go vet ./...
lint: vet revive

package comment については公式doc参照
このスクラップは2023/03/11にクローズされました