HEXA BLOG

ソフトウェア紹介

HEXA BLOGその他ソフトウェア紹介2013.11.20

入力補完補完

こんにちは、ケイタですわーい(嬉しい顔)
先週から今週にかけてはサッカーの国際Aマッチ期間ということで、
日本代表がオランダ、ベルギーといったヨーロッパの強豪国との親善試合が行われましたサッカー
サッカー好きかつJリーグ好きな僕としては大迫、柿谷といった普段Jリーグで活躍している期待の若手選手が日本代表でも活躍しているのを見るととても嬉しくなりますグッド(上向き矢印)
これからさらに成長し、来年のブラジルW杯でも光り輝いて欲しいと願うばかりですひらめき
さてさて、普段僕はプログラムを書くのにVisualStudioを愛用しています。
VisualStudioにはintellisenseと呼ばれる入力補完機能が組み込まれていて、
コーディングが楽に出来るようにされています。
その補完機能をはじめ、VisualStudioでのコーディングをさらに便利にする
アドオンの「Visual Assist X」を今日は紹介します次項有
Visual Assist Xは、これまでブログで紹介してきたものと違って有料のソフトですパスワード
値段もスタンダードライセンスが$249とそれなりのお値段がかかります有料
さらにVisualStudio専用のアドオンなのでExpressEditionでは使用出来ませんバッド(下向き矢印)
「いいものかもしれないけど有料だしデフォルトの機能もあるし…たらーっ(汗)
という方の為に実際使ってみてこれは便利exclamationと感じたポイントを4つに絞って紹介させていただきますひらめき

2010-10-14-0.png

1ソリューション内ファイル検索、展開
既に入力補完の機能ではないですが、これが非常に便利手(チョキ)
言ってみればこれは単に「ファイルを開く」機能です。
しかし、ソリューション内にソースファイルが大量にあると目的のファイルを
VisualStudioのソリューションエクスプローラーから探すだけで一苦労してしまいますふらふら
この機能はショートカットキー(Alt+Shift+O)を押してファイル名を入力すればそのファイルをソリューション内から検索して開いてくれます。
ファイル名の入力中は開くファイルの候補を常に出してくれるので、ファイルを開こうとした時に
「Memoryから始まる…なんだっけ…」といううろ覚え状態でも安心決定
VisualStudio2012からソリューションエクスプローラー上で検索出来る機能が追加されましたが、
今のところVisualAssistの方が圧倒的に高速で動作し、わかりやすいでするんるん
2スニペット
入力補完のテンプレートの定義、それを呼び出すためのショートカット設定などを行います。
例えばファイルヘッダのインクルードガード設定から、if文を入力補完する際の中括弧の位置など細かいところまで。
VisualAssistの入力補完をどの様に行うかはこのスニペットで設定しますパンチ
説明だけだとピンと来ないかもしれませんので、実例を紹介してみたいと思います。
例えばこんなよくあるif文をスニペットに追加してみます。

if(pInstance != nullptr)
{
// 処理
}

・スニペットのエディターで定義を追加
エディターはVisualStudioに統合されているため別のツールを立ち上げる必要はありません。
今回ショートカットを「ifn」にしてみました。
20131120_VA_SnippetsSetting.jpg
・コード上でショートカットの「ifn」を入力するとVSのintellisenseのように候補が表示されます。
20131120_VA_Candidate.jpg
・TabかEnterを押すと定義したスニペットがコードに追加されます。
20131120_VA_SnippetsAfter.jpg
スニペット上で$end$の定義をifの条件文の中に設定しているため、カーソル位置は設定した箇所になっています。
例えばこの$end$を中括弧{}の中に設定すれば、スニペットを挿入した時のカーソル位置は中括弧の中に移動します。
このようにスニペットを上手く使うことでコーディングの手間を省略することが出来ますグッド(上向き矢印)
3中括弧、括弧などのブロック補完
例えば普段下記のようなコードを書くことは多いのではないでしょうか。
中括弧でブロックを作る場合、当然そのブロックを閉じる必要がありますパスワード

void Hoge::Function()
{
}

このように中括弧でブロックを作る時、中括弧の開始 { を入力した時点で } が入力補完されてブロックを閉じてくれます。
これは括弧()でもダブルクォーテーション“”でも同じ動作をします。
そのためブロックの閉じ忘れや、括弧の数が合わないといったつまらないケアレスミスを極端に減らすことが出来ますわーい(嬉しい顔)
4ポインタかどうかを自動判別して置換
ポインタの場合、

Hoge* foo = new Hoge();
foo->Init();

のようにポインタのクラスにアクセスするときは->を記述する必要があります。
VisualAssistが入っていると、ピリオドを打つだけで -> に補完してくれますぴかぴか(新しい)
上の例だと

foo.

とピリオドを打った時点で

foo->

に置換されます。
つまりコードを書く人が「この変数はポインタだから->」「この変数はポインタじゃないからピリオド」
というようにポインタかどうかを意識せず「クラスにアクセスするときはピリオド」で統一することが出来ますグッド(上向き矢印)
(逆に変数がポインタかどうかを判別したいときは、とりあえず変数の後ろにピリオドをつければわかります)

2010-10-14-0.png

普段使っていて特に便利だと感じるところを絞って紹介してみましたがいかがでしたでしょうか。
他にもシンボル検索、リネーム機能、コード内色分けや関数ドキュメントコメント生成など
便利な機能がたくさんあるので、興味が湧いた人はまず公式サイトの機能紹介動画を見てみるのをオススメしますわーい(嬉しい顔)
それではまた手(パー)

RECRUIT

大阪・東京共にスタッフを募集しています。
特にキャリア採用のプログラマー・アーティストに興味がある方は下のボタンをクリックしてください

RECRUIT SITE 

NEWS