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

Blank File

LinuxとかPythonとかVimとか、趣味でいじる感じで

vim-dartanalyzerの使い方

Dart Vim

先日の記事(気づいたらDartの構文チェック用Vimプラグインを作っていた)で紹介したDartの構文チェックプラグインvim-dartanalyzerの使い方などを書いておきます。

スクリーンキャスト

こんな感じで結構キビキビと構文チェックします。

f:id:h-miyako:20140915025324g:plain

インストール

dark-sdk付属のdartanalyzerと、Shougo/vimproc.vim が必要なので、先にインストールしてください。

その後、vim-dartanalyzerをインストールします。neobundle.vimvimプラグイン管理を行っている人は、.vimrcに以下の行を書き足して:so %して:NeoBundleInstallでインストールできます。

NeoBundle 'miyakogi/vim-dartanalyzer'

使い方

基本的に特別な設定は不要です。 ft=dartなファイルを開けば自動的にdartanalyzerをバックグラウンドで起動し、いい感じにエラーチェックします。 ファイルに変更が加えられるたびにチェックが走ります。 明示的に任意のタイミングでチェックを行いたいときは:DartAnalyzerRunで実行できます。

もし拡張子dartなファイルを開いてもfiletypeが設定されない場合は、dart-lang/dart-vim-pluginをインストールするか、.vimrc autocmd BufNewFile,BufRead *.dart set filetype=dartなどの設定を追加してください。

エラー箇所と警告箇所はそれぞれSpellBadSpellCapsのハイライトを使用します。 使っているcolorschemeによりますが、GVimの場合赤い波線と緑の波線だったりするんじゃないでしょうか。 エラー部分にカーソルを持って行くとステータスライン(?)にエラーの内容が表示されます。

エラー箇所はlocation-listに保存されます。 :lopenでlocation-listを開けば任意のエラー箇所にジャンプできます。

設定

実行パス

dartanalyzerの実行パスを明示的に指定したい場合、変数g:dartanalyzer_cmdにパスを指定してください。 デフォルトでは'dartanalyzer'になっています。

自動起動

dartanalyzerを自動的に起動したくない場合、

let g:dartanalyzer_disable_autostart = 1

.vimrcで設定すると自動起動しなくなります。 起動したい時は:DartAnalyzerEnableを実行してください。

起動時メッセージ

dartanalyzerの起動には数秒かかり、その間はチェックが行われない上にvimの動作がもっさりします。 起動が終わっているかわかりやすくしたい場合は、

let g:dartanalyzer_show_startupmsg = 1

.vimrcで設定すると起動中と起動完了時にメッセージが表示されます。

チェック後に処理を行う

構文チェック後に任意の処理を行うことができます。 設定はg:dartanalyzer_postprocessexecuteしてほしい処理を書くだけです。 私は以下のように設定してitchyny/lightline.vimを更新する処理を入れています。

let g:dartanalyzer_postprocess = "call lightline#update()"
エラーの数、警告の数を取得する

エラー数と警告数は以下の関数で取得できます。

call dartanalyzer#count_errors()
call dartanalyzer#count_warnings()

用途としては、lightlineなどでエラー数の表示に使うことを想定しています。

今後の予定

ソースを見ながらこの記事を書いていたら修正したい箇所が出てきたのでそこを修正します。 これは大きな変更ではありません。

あとは一応エラー箇所のハイライトをユーザーが設定できるようにしようかと思っています。

要望やバグなどありましたら、コメント欄かgithubIssuesにお願いします。