読者です 読者をやめる 読者になる 読者になる

AtomのLinter

atom

AtomのLinterはメジャーなものが2つありそうです。
両方ちょろっとさわってみたので感想を記載しておきます。

Linter

f:id:rochefort:20140730024133p:plain

Atom-Lint

f:id:rochefort:20140730024143p:plain

違い

項目 Linter Atom-Lint
URL https://atom.io/packages/linter https://atom.io/packages/atom-lint
Linter
linter-php, for PHP using php -l
linter-phpcs, for PHP, using phpc
linter-phpmd, for PHP, using phpmd
linter-pylint, for Python, using pylint
linter-javac, for Java, using javac
linter-jshint, for JavaScript and JSON
, using jshint
linter-jscs, for JavaScript, using jscs
linter-scss-lint, for SASS/SCSS
, using scss-lint
linter-coffeelint, for CoffeeScript
, using coffeelint
linter-csslint, for CSS, using csslint
linter-rubocop, for Ruby, using rubocop
linter-tslint, for Typescript, using tslint
linter-xmllint, for XML, using xmllint
linter-shellcheck, for Bash, using shellcheck.
linter-scalac, for Scala, using scalac.
linter-clang, for C / C++, using clang.
RuboCop for Ruby
flake8 for Python
HLint for Haskell 
JSHint for JavaScript
CoffeeLint for CoffeeScript
gc for Go
CSSLint for CSS
SCSS-Lint for SCSS
puppet-lint for Puppet
ShellCheck for shell script
Clang for C/C++/Objective-C
rustc for Rust
erlc for Erlang
DL数 約3万 約1万

AtomのPackageは、Settingsから検索できて良いのですが
Packageの詳細が分かりにくいという傾向があります。
(なのでダウンロード数の多いのをとりあえず選んでしまう。)

(主にrubocopですが)両方触ってみたところ、ダウンロード数の少ない(といっても1万DL)
Atom-Lintの方が自分には馴染みそうだったので、今はAtom-Lintを使っています。
それぞれが使いやすい方を選べば良いと思います。

Atom-Lintのいいところ

  • ショートカットで移動ができる
Ctrl-Alt-L: Global toggle
Ctrl-Alt-[: Move to Previous Violation
Ctrl-Alt-]: Move to Next Violation
  • 導入が楽
    もちろんrubocop使うためには、gemで入れないといけないのですが、
    Linterだと更にサブプロジェクトのinstallが必要かつ、
    ~/.atom/config.cson に設定が必要となります。(これが面倒)

  • 開発者が日本人(だと思う)

Lintのいいところ

見た目がちょっとおしゃれ。 参考:linter (だけどフォントサイズが小さい。)

余談

Atom-LInter は、自分の環境だと consoleにエラーが出力されていたので
ちょろっと直して pull request したり bug reportしています。(noclobberが悪さをしていたみたい)
私はJSerではないのですが、Atom-Linterはテストがしっかり書かれていてモダンな印象を受けました。
(逆にLintは、rubocop実行がemacs形式で出力していてびっくり)