IntelliJ IDEAをgometalinter
と連携させる方法を探したところ External Toolを使ずとも File Watchers
が gometalinter
に対応しているようなので手順を書き残しておきます。
GoLandでも同様。
利用バージョン
- IntelliJ IDEA: 2018.1.5 (Ultimate Edition)
- Plugin
- GoVersion: 181.5087.39.204
- File Watchers: 181.4668.7
設定方法
※ Goプラグインはインストール済み
1. Preferences > Plugins > Browse repositories を開き 「File Watchers」 をインストールする
2. Preferences > Tools > File Watchers を開き、プラスボタンをクリックし、NewWatherとして gometalinter
を作成する。チェックを入れて OK で保存する
- gometalinterは必要に応じて
go get -u github.com/alecthomas/gometalinter
する
![Preferences.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F26393%2F6b4c7a2e-8630-4dad-e248-ac4ea0d9e808.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=e71e971f8329df9f45f751abd108bbaa)
3. gometalinter --install --update
で各種lintやフォーマッタ等をまとめてインストールする
```bash
$ gometalinter --install --update
Installing:
deadcode
dupl
errcheck
gas
goconst
gocyclo
goimports
golint
gosimple
gotype
gotypex
ineffassign
interfacer
lll
maligned
megacheck
misspell
nakedret
safesql
staticcheck
structcheck
unconvert
unparam
unused
varcheck
vet
```
4. File Watchersのスコープ(デフォルトはProject Files)に変更があれば gometalinter
が golint
等を走らせます。
5. チェックする項目が多すぎるので、gometalinter
のArguments:を変更して実行するlinter, formatterを絞る
私は以下のようにしています。
Argments: --exclude="\bexported \w+ (\S*['.]*)([a-zA-Z'.*]*) should have comment or be unexported\b" --disable-all --enable=golint --enable=vet $FileDir$
- コメントのメッセージを無効にしています。
![Edit_Watcher.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F26393%2F38ece60a-04e4-56e4-b6bb-0c1b16d293bc.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=d93ca0018465fda40e3c9eb6bc0c4c4a)