2012年10月29日月曜日

CCCC + Jenkins + HTML Publisher Plugin

CCCC + Jenkins」 で紹介した Publish CCCC report Plugin はちょっと残念な感じでした。
そこで、今回は HTML Publisher Plugin を使いたいと思います。

設定
まずは、HTML Publisher Plugin をインストールします。
次に、プロジェクトの設定ページを開いて「ビルド後の処理の追加」から「Publish HTML reports」を選択します。


追加ボタンを押して
「HTML directory to archive」に、CCCC の結果の出力パスを設定、
「Index page[s]」 は cccc.html (CCCC のデフォルト)に変更します。
「Report title」は好きな名前をつけてください。今回は「CCCC Report」としました。



以上で設定は完了です。

実行
実行すると、「CCCC Report」が追加されます。

ここから、CCCC の HTML を閲覧できます。


もちろん、モジュールごとの結果も閲覧できます。


これで CCCC の結果がより確認しやすくなったのではないでしょうか。

2012年10月28日日曜日

Visual Studio でよく使うショートカット

こういう記事はよくありますが、自分がよく使うショートカットをまとめてみました。

検索
Ctrl + F3選択語句を検索
F3次を検索
Shift + F3前を検索
Ctrl + Fクイック検索
Ctrl + Shift + Fフォルダを指定して検索

「フォルダを指定して検索」では、検索対象に
  • 現在のドキュメント
  • すべての開かれているドキュメント
  • ソリューション全体
  • 現在のプロジェクト
  • Visual C++ インクルード ディレクトリ
を指定できます。
検索結果は、「検索結果 1 ウィンドウ」または「検索結果 2 ウィンドウ」に出力されます。
どちらに出力するかは、ダイアログの検索結果オプションで変更できます。

移動
F12定義へ移動
Ctrl + G指定行へジャンプ
Ctrl + -戻る
Ctrl + Shift + -次に進む

戻るで以前にジャンプした場所に戻れます。かなり便利です。

コーディング
Ctrl + Spaceインテリセンスの表示
Ctrl + Jメンバの一覧
Ctrl + K, Ctrl + C選択範囲のコメント
Ctrl + K, Ctrl + U選択範囲のコメント解除
Ctrl + K, Ctrl + F選択範囲のフォーマット
Ctrl + M, Ctrl + Mアウトラインの展開/折りたたみ


※この記事は、Visual Studio 2008 を対象に書かれています。
他のバージョンでは異なる恐れがあります。

2012年10月24日水曜日

エディタ=Visual Studio な人のためのメイクファイルプロジェクト

Visual Studio にはメイクファイルプロジェクトというものがあります。

メイクファイルプロジェクトでは、ビルド/クリーン/リビルドのコマンドを設定します。
このコマンドにはユーザーが自由に処理を書けるので。
Visual Studio にはないコンパイラを使うこともでき、インテリセンスの恩恵を受けることができます。
makefile を使った例
makefile でビルドするプロジェクトを Visual Studio を使って開発する例です。

  1. まずは、プロジェクトを作成します。
    メイクファイルプロジェクトを選択し、コマンドを設定します。


    (今回は、make でビルド、make clean でクリーンできるものとします。)
  2. この状態でもすでにビルドできます。
    F7 でビルドしてみましょう。

  3. 次に、インテリセンスの恩恵を受けるためにコードをプロジェクトに追加します。
    インクルードパスが通っていないと、インテリセンスが動作しないのでパスも通します。
    (プリプロセッサの定義などもあれば設定します。)
    これでインテリセンスが機能します。

  4. ログをカスタマイズする。
    ビルドログは出力ウィンドウに表示されますが、メッセージは makefile の出したそのままのメッセージです。
    このままでは、エラーウィンドウにエラー情報が表示されませんし、ログから該当コードにジャンプもできません。
    これに対応するために、Visual Studio が認識できるフォーマットでログを出力するようにします。
    build.bat ファイルを新規作成し、以下のようにログを加工します。(一例です。)
    @echo off
    
    SET LANG=ja_JP.SJIS
    bash -c "make --no-print-directory %*" 2> build_log.txt
    if errorlevel 1 (
        sed -e "s/:\([0-9]*\):[0-9]*:/(\1):/g" build_log.txt | sed -e "s/\/cygdrive\/\([a-z]\)/\1:/g"
        del /F build_log.txt
        exit /b 1
    ) else (
        sed -e "s/:\([0-9]*\):[0-9]*:/(\1):/g" build_log.txt | sed -e "s/\/cygdrive\/\([a-z]\)/\1:/g"
        del /F build_log.txt
        exit /b 0
    )
    
    ビルドコマンドを build.bat に変更し、ビルドを実行します。
    これでエラー一覧にエラーが表示されるようになりました。


HTML でも Visual Studio
Visual Studio で HTML ファイルを開くと色付きで表示してくれます。
また、閉じてないタグや存在しないパスなど警告を表示してくれます。


これだけではつまらないので、メイクファイルプロジェクトを利用して htmllint をかけたいと思います。
(htmllint はこちらからダウンロードしました)

iutest での使用を例に説明します。
まずは、Makefile と build.bat を用意します。

Makefile:
#!/usr/bin/make 

LANG=ja_JP.SJIS
HTMLLINT_PATH=$(subst \,/, $(HTMLLINT_ROOT))

default: target

all: target lint

target: Doxyfile
    doxygen Doxyfile

lint:
    (find ../ -maxdepth 1 -type f -name "*.html" -print0 | xargs -0 perl $(HTMLLINT_PATH)/htmllint)


build.bat:
@echo off

SET PATH=c:\cygwin\bin;%PATH%
SET LANG=ja_JP.SJIS
bash -c "make --no-print-directory %*" > build_log.txt
if errorlevel 1 (
    sed -e "s/: [0-9]*:/: error:/g" build_log.txt | sed -e "s/\/cygdrive\/\([a-z]\)/\1:/g"
    del /F build_log.txt
    exit /b 1
) else (
    sed -e "s/: [0-9]*:/: error:/g" build_log.txt | sed -e "s/\/cygdrive\/\([a-z]\)/\1:/g"
    del /F build_log.txt
    exit /b 0
)

make lint
で、htmllint が実行されます。
build.bat はその出力を Visual Studio が対応している書式に変更します。

Visual Studio の設定は、ビルドコマンドに "build.bat lint" とするだけです。



実行すると以下のように結果が表示されます。
一覧から該当ファイルの行にジャンプできるので、修正がはかどります。


まとめ
このように、メイクファイルプロジェクトを使えば通常 Visual Studio では扱えないプロジェクトも管理でき、
Visual Studio IDE の機能の恩恵を受けることができます。

ここまで高価な専門ツールである Visual Studio のことを紹介してきましたが、
メイクファイルプロジェクトは Express Edition でも使用出来るのでご安心ください。