先日スカウターを故障させるスクリプトを開発した。
しかし故障させておくわけにもいかないので、パワーアップスクリプトを適用してもきちんと計測できる新型スカウターを開発した。
function! Scouter(file, ...) let pat = '^\s*$\|^\s*"' let lines = readfile(a:file) if !a:0 || !a:1 let lines = split(substitute(join(lines, "\n"), '\n\s*\\', '', 'g'), "\n") endif return len(filter(lines,'v:val !~ pat')) endfunction command! -bar -bang -nargs=? -complete=file Scouter \ echo Scouter(empty(<q-args>) ? $MYVIMRC : expand(<q-args>), <bang>0)
これは \ による行の折り返しを 1 行とみなして計測するようにしてある。よって旧式のスカウターに比べて戦闘力が少なめに計測されるが、それが本来の数値と言うことで仕様。
ちなみに比較できるように :Scouter! で旧式の動作をするようにしてある。
:Scouter! 39595 :Scouter 996
これで私もめでたく中級者に降格することとなった。
この方式を戦闘力の計測の新基準として提案するがどうだろうか。
追記: これは現在プラグイン化されています。ご利用の場合はこちらをどうぞ。
複数ファイル同時に計測できたりなど、より便利になっています。
https://github.com/thinca/vim-scouter