Dartでlintといえば dartanalyzer だけど、custom lint rule に対応していない。 (dartanalyzerは中でdart-lang/linterを利用している) github.com
なので、独自のlint ruleを動かす君を作る。 独自のコマンドゆえにIDE上のDart AnalyticsではLintエラーが表示されないので注意が必要。ただCIで動いてれば漏れてても気付けるのでそれでいいなって思う。
import 'package:linter/src/analyzer.dart'; import 'package:linter/src/cli.dart' as cli; import 'rule/avoid_utc_datetime.dart'; Future main(List<String> args) async { Analyzer.facade.register(AvoidUtcDateTime()); await cli.run(args); }
以下のように動かす。今回はDateTime.utc()
とかを使っているとエラーが起きるようなRuleを書いた。
pub run tool/linter/main.dart . --rules=avoid_utc_datetime --packages=.packages
Rule自体は、ここにあるRuleを見ながら書くとよい。