この記事はC++ Advent Calendar 2016の14日目の記事です。
Visual Studio 2015 Communityでcpplintを使えるようになるまでを書いていきます。
lintとは
lintとはソースコードの静的解析ツールのことです。
Wikipediaには次のように書いていました。
https://ja.wikipedia.org/wiki/Lint
lintとは、主にC言語のソースコードに対し、コンパイラより詳細かつ厳密なチェックを行うプログラムである。
転じて、C言語に限らず、各種言語で書かれた文書に対して文法チェックを行うプログラムも、lintと呼ばれるようになった。この意味でのlintの代表例としては、HTMLの文法チェックを行うAnother HTML-lintがある。
lintはソースコードをどう書くかなどのルールをある意味人間に強制することで、チーム内でコードの書き方のお作法などをどうするかの悩みを解決してくれます。またそれによって人間はコードを書くということに集中できるようになるため、個人的にすごい気に入っているツールです。
cpplintとは
cpplintとはpythonで書かれたC++のソースコードがGoogle C++ Style Guideに従っているかを検査するツールです。
実行する時に--filter
オプションを使うことで検査される内容を細かく設定できます。どのような内容が検査対象になるかは、--filter
オプションの移り変わりに対応するためにもcpplintのソースコードを直接見るのがいいと思います。
Visual Studioの外部ツールとしてcpplintを登録する
Windowsにpython
がインストールされており、cpplint
もpip
でC:\Python27\Scripts\cpplint.exe
インストールされている前提とします。
ツール(T)
→外部ツール(E)...
で外部ツールの設定画面を開きます。追加(A)
を選んで以下のように入力します。
タイトル: cpplint
コマンド: C:\Python27\Scripts\cpplint.exe
引数: --output=vs7 --extensions=h,hpp,c,cpp $(ItemPath)
初期ディレクトリ: $(ItemDir)
引数のところに--filter
オプションを書いてやると検証の内容を設定できます。また--extensions
はlintの対象となるファイルを指定するオプションで、デフォルトでは、.cc
、.cpp
、.cu
、.cuh
.h
が対象なので、hpp
を対象にするには明示的に指定しなければなりません。
ここで、登録したcpplint
が上から何番目なのか覚えておいてください。上の画像だと6番目です。
cpplintをキーボードショートカットに登録する
ツール(T)
→オプション(O)...
でオプション画面を開きます。検索バーに外部コマンド
と入力します。番号が振られたコマンドが出てくると思うので、対応する数字にキーボードショートカットを割り当てます。この場合だと6
にCtrl+R,Ctrl+L
を割り当てました。
cpplintの実行
コードを編集するエリアで先程登録したショートカットを実行すると次のようにエラーを表示してくれます。
参考
以下のページを参考にしました