先週金曜日にVisual Studio 2015 Previewがリリースされ、C ++コードのリファクタリングなど、開発の生産性を向上させる新しい機会が提供されました。 大部分は、この機能の実装は、Visual Studio "14" CTPのテスト中に受け取ったコミュニティからのフィードバックの影響を受けました。参加したすべての人に感謝します。
この記事では、C ++コードの操作に関するVisual Studio 2015 Previewの次のような機能を検討します。
- 名前を変更
- 抽出機能
- 純粋仮想メソッドのスタブの生成(純粋仮想の実装)
- メソッド宣言/スタブの生成(宣言/定義の作成)
- 移動関数の宣言
- 生文字列リテラルに変換
名前の変更は、最も頻繁に必要なツールです。 したがって、クラス\関数\変数を右クリックして、コンテキストメニューの一番上に配置しました。 さらに、Ctrl + Rの組み合わせをダブルクリックしてアクティブ化できます。 ツール自体は2段階で構成されます。最初のウィンドウでは名前の変更設定を指定し、2番目のウィンドウではプレビューを行います。


役に立つヒント
- 最初のウィンドウのコメントと文字列リテラルで名前を変更した文字の検索を無効にすることができます(チェックボックス「検索/文字列」)
- コメントや行で見つかった文字の表示を有効にすることもできますが、それらの名前を変更しないでください(「コメント/文字列の名前を変更する」を選択します)
- この機能の詳細については、 このビデオをご覧ください。
関数抽出は、2番目に多く要求された機能でした。 まだ作業中ですので、今のところは拡張機能として実装されています。 インストール後、分離したいコードブロックを別の関数にハイライトし、右クリックして[リファクタリング...]メニューの[関数/メソッドの抽出]を選択します。

役に立つヒント
- このツールにはコード検証のいくつかの手段がありますが、通常の操作では有効で一貫性のあるコードブロックを強調表示しようとします。
- 回復可能な機能はコンテキストを維持します。 つまり、クラスのメソッドからコードの一部を抽出すると、新しい関数は同じクラスのメソッドになります。
仮想メソッドスタブの生成により 、継承されたクラス内のすべての純粋な仮想メソッドの本体を作成できます。 多重継承がサポートされています。 このツールは、クラス宣言のコンテキストメニューから呼び出されます。

役に立つヒント
- このツールは、ヘッダーファイルにメソッド宣言を生成し、cppファイルにスタブ自体を生成します。
- 継承されたクラスの宣言にあるこのクラスの名前のコンテキストメニューから、基本クラスの1つだけのスタブの生成を呼び出すことができます。
- 元に戻す操作は、生成されたすべてのスタブを削除しますが、前の手順で作成されたcppファイルは削除しません。
- このツールの詳細については、 このビデオをご覧ください。
重要なポイント :上記の機能はすべて、IntelliSenseが有効になっている場合にのみ機能します。
メソッド宣言/スタブを生成すると、欠落しているメソッド宣言またはスタブをすばやく生成できます。


役に立つヒント
- 本文はあるがヘッダーファイルで定義されていないメソッドは、波線の緑の線で強調されます。
- 複数のメソッドの定義/スタブを一度に生成できます(すべてを選択し、コンテキストメニューで[リファクタリング]-> [宣言/定義の作成]を選択する必要があります)
- このツールの詳細については、 このビデオをご覧ください。
メソッド宣言を移動すると、メソッド本体をヘッダーファイルからcppファイルに、またはその逆にすばやく移動できます。

役に立つヒント
Raw-Stringに変換すると、任意の文字列をRaw-Stringに変換できるため、エスケープシーケンスを使用した文字列の可読性が大幅に向上します。 この関数は、行の任意の場所のコンテキストメニューから呼び出されます。

役に立つヒント
- 現在サポートされている文字は、\ n、\ t、\ '、\ "、\?のみです。
- 行に他のエスケープシーケンスがある場合、エラーが発生します
- 逆変換はありません-元に戻すを使用します