2011年8月5日(追記)
・日本語ファイル名を扱えるようにしました。
・秀丸エディタで編集ファイルをVisualStudioで開くマクロを追加しました。
・ダウンロードはこちらから。 https://github.com/ohtorii/visual_studio_hidemaru
秀丸エディタから VisualStudio を制御するプログラマ向けのマクロです。
(github:左上のダウンロードボタンからzipを選択してください。開発中の最新版はこちら)
https://github.com/ohtorii/visual_studio_hidemaru
(秀丸エディタのマクロライブラリ。安定版はこちら)
http://hide.maruo.co.jp/lib/macro/visual_studio_hidemaru.html
ソースコードを秀丸エディタで書いて、ビルドする度に VisualStudio へ移動するのが面倒なので、「ビルド・リビルド・実行...etc」を秀丸エディタから出来るようにしました。
秀丸エディタ ver8.03(ver8系なら多分動くと思います)
アウトプット枠
出力はアウトプット枠へ表示します、コンパイルエラーのあるファイル名位置で改行キーを押すかマウスクリックすると該当のファイル名と行位置へジャンプできます。
出来ること
動作環境
VisualStudio 2008
VisualStudio 2010
C++/C#/VBプロジェクトで動作を確認しています。
VisualStudioは複数起動していても正しく動作します。
Express版は未対応です(本マクロでは認識しません)。
マクロの説明
「コンパイル・ビルドのキャンセル・ソリューションのビルド...etc」は1コマンド1ファイルになっています。
visual_studio_menu_simple.mac は各コマンドを呼び出しているサンプル的な位置づけです。
ファイル名 | 説明 |
---|---|
visual_studio_menu_simple.mac | 簡易メニュー |
visual_studio_cf_compile.mac | コンパイル |
visual_studio_cf_cancel.mac | ビルドのキャンセル |
visual_studio_cf_debug.mac | デバッグ開始 |
visual_studio_cf_debug_stop.mac | デバッグの停止 |
visual_studio_cf_project_build.mac | プロジェクトのビルド |
visual_studio_cf_project_clear.mac | プロジェクトのクリーン |
visual_studio_cf_project_rebuild.mac | プロジェクトのリビルド |
visual_studio_cf_run_without_debug.mac | デバッグなしで開始 |
visual_studio_cf_solution_build.mac | ソリューションのビルド |
visual_studio_cf_solution_clear.mac | ソリューションのクリーン |
visual_studio_cf_solution_rebuild.mac | ソリューションのリビルド |
visual_studio_cf_hmbook.mac | 秀丸の(.hmbook)ファイルを作る(おまけマクロ) |
visual_studio_call.mac | 橋渡しをするマクロ |
visual_studio_hidemaru.exe | VisualStudioを制御する実行ファイル |
visual_studio_hidemaru.exe が Visual Studio を制御しています、秀丸に依存しないので他のテキストエディから使用できるかもしれません。
内部動作
秀丸エディタで編集しているファイル名を含む Visual Studio を特定して、各種コマンド(ビルド/デバッグ・・・)を送りつけて結果を取得しています。
例えば Visual Studio が二つ起動しているとします、
・VisualStudio_0 c:\my_app\src\main.cpp (ソリューションエクスプローラーに含まれる) ・VisualStudio_1 c:\project\main.cpp
このとき、c:\my_app\src\main.cpp を秀丸エディタでリビルドすると visual_studio_hidemaru.exe が VisualStudio_0 に対してリビルドコマンドを送り、ビルド中のメッセージを取得しています。
どうやって、Visual Studio を見つけるかというと、
Visual Studio を起動すると COM の RunningObjectTable に登録されます。
RunningObjectTable は IROTVIEW.EXE で表示できます。
(VC2010の例)
!VisualStudio.DTE.10.0:4464
末尾の4464はプロセスIDです。
あとは、プログラムから CreateBindCtx → monikers → GetObject → QueryInterface → Dispatch すると 該当のプロセスIDに結びついた DTE を取り出せます。
githubにソースがあるのでそちらを参照してください。
おまけ機能
Visual Studioに登録してあるファイル(cpp/h...etc)ら秀丸のプロジェクトファイル(.hmbook)を作る機能があります。
visual_studio_menu_simple.mac 90行目付近 のコメントを参照してください。if(0) を if(1) に変更すると有効
になります。