Haskell で import 文をソートするプラグイン vim-haskell-sort-import を作りました - プログラムモグモグという記事を拝見して,コードを見たらすごくわかりやすくて,これの C/C++ 版がほしいと思い,書いてみました.
vim script はほとんど書いたことがないんですが,やっぱりエディタ拡張用のスクリプトなので,普通の言語と違う部分は多いですね… でもその分エディタという UI が既に用意されている状態なので,なんというか書いていて楽しかったです.さくっと書けますし.(先ほどのコードを参考にしているというのもありますが)
使い方
NeoBundle
や vim-plug
のようなプラグインマネージャを使うなどして runtime path に突っ込んでください.
提供する機能は SortInclude
コマンドのみです.
こんな感じの動作をします.
#include
は ""
を使う場合と <>
を使う場合があり,それぞれファイルパスの探索場所が異なるので,それぞれ別のグループとしてソートするようにしました.
#include <iostream>
#include "a.h"
#include "z.h"
が
#include "a.h"
#include <iostream>
#include "z.h"
にソートされたら気持ち悪いと思うので.
あとは参考にさせていただいたプラグインと同様,空行を挟むなどブロック化されている場合は,ブロック内でソートします.
#include
をソートするとか既にありふれてそうですが,はじめての vim プラグインということで.
せっかくなのでドキュメントなども vim の help フォーマットにしたがって書いてみました.