ReSharperは、その存在から10年以上、.NET開発者に焦点を合わせてきました。これは、Visual Studioのプラグインにとって驚くべきことではありません。 2年前、エイプリルフールのジョークが成功したこともあり、ReSharperでC ++をサポートしました。つい最近、 ReSharper C ++の最初の公式リリースがリリースされました-Visual StudioのC / C ++開発者専用の新製品です。 (C / C ++でのクロスプラットフォーム開発のためのCLionのリリースを待っている人は、もう少し忍耐が必要です。)
ReSharper C ++はどのように役立ちますか? 製品の主な機能を分析します。
静的コード分析
肯定的なプロジェクトでVisual Studioを開くとすぐに、ReSharper C ++はプロジェクトの分析を開始し、見つかった問題の修正を提案し、これらまたはそれらの改善を推奨します。 たとえば、タイトルを書き込まずにタイプを使用する場合、ReSharper C ++はこれを行うようプロンプトを表示します。
関数プロトタイプがあるが、その定義が十分でない場合、ReSharper C ++は同じまたは別のファイルで関数本体を生成することを提案します。
printf()
関数を使用する場合、ReSharper C ++はフォーマット引数をチェックし、問題が見つかった場合は修正を提案します。
マクロとテンプレート
ReSharper C ++はすべてのマクロを完全に理解しているため、前処理後に取得されるコードの分析を実行します。 これにより、多くのユニークな機能が提供されます。たとえば、コード内でマクロを直接「デプロイ」できます。
ReSharperテンプレートによる要因実装の場合、C ++はこのテンプレートを使用して記述されたstatic_assert
すぐにチェックできます。
ナビゲーションと検索
ReSharper C ++を使用すると、大規模なプロジェクトをすばやく移動して、プロジェクト内の目的のコードを検索できます。 サポートされているナビゲーション機能の一部を次に示します。
- [名前ですべてに移動 ]を選択すると、ソリューション全体であらゆるタイプのエンティティ(クラス、クラスメンバー、ファイル、またはフォルダー)が一度に検索されます。 「 タイプに移動」、「ファイルに移動」、「シンボルに 移動 」など、より狭いコマンドで結果をフィルター処理することもできます。
- [ファイルへ移動]メンバーを使用すると、現在作業しているファイル内のシンボルをすばやく見つけることができます。
- ベース/派生に移動すると、クラスまたはクラス要素で相続人と親を検索できます。 [定義に移動]を使用すると、シンボルの宣言の場所にすばやくジャンプできます。
- [関連ファイルに移動]は、現在のファイルと関係があるファイルに移動するために使用されます。 これらには、ヘッダーファイルまたはCPPファイルを含めることができます。 さらに、ReSharperでは、ヘッダーファイルとCPPファイルをすばやく切り替えることができます(Ctrl + B)。
- 専門分野に移動すると、テンプレートクラスのすべての専門分野を見つけることができます。
ReSharper C ++で特定の文字のすべての出現を検索するために、プレビュー、グループ化、およびフィルタリングの機能を持つFind Usagesメカニズムがあります。
Alt + Enterを押すと開くコンテキストメニューから多くのナビゲーションコマンドを使用できることに注意してください 。
ReSharper C ++には、大規模で複雑なプロジェクトのナビゲーション用のいくつかのウィンドウも含まれています。 これらのウィンドウの1つはファイル構造と呼ばれます。現在のファイルの構造をすばやくナビゲートできます。
別のウィンドウはInheritance Hierarchyと呼ばれ、ツリー型の継承階層が表示されます。
ナビゲーショントピックを締めくくると、クラス要素をナビゲートするためのコマンド( 次へ/前のメンバーに移動 )とファイル内で見つかったエラー( 次へ/前の問題に移動 )があります。
テンプレートとコード生成
コードとテンプレートを生成するシステムをC ++に適合させました。 つまり、ReSharper C ++では、主要なReSharperメカニズムのユーザーになじみのある次のメカニズムがサポートされています。
- ライブテンプレートは、Visual Studioのスニペットによく似た動作をするテンプレートですが、はるかにコンテキストに依存しており、ニーズに合わせて動作をプログラムできます。
- サラウンドテンプレートを使用すると、コードの一部を選択し、特定の構造(
if
またはtry-catch
式など)でラップできます。 これらのテンプレートは、 Alt + Enterを押すことで、コードの選択部分でも使用できます。
- ファイルテンプレートを使用すると、個別のファイルを作成し、事前に定義された設定で複数のファイルをすぐに生成できます。 たとえば、 クラステンプレートはヘッダーとCPPファイルの両方をすぐに作成します。
テンプレートに加えて、ReSharper C ++には、[ 生成 ]メニューでコードを生成するための通常のメカニズムがあります。
リファクタリング
コードリファクタリング機能は、ReSharper名刺の一種です。 ReSharper C ++に既にあるリファクタリングを次に示します。
- 名前の変更を使用すると、キャラクターの名前(クラスやフィールドの名前など)およびプロジェクト全体での名前を変更できます 。
- [ 変数の導入]では、計算の一部を選択して別の変数に保存できます。
- メソッドの抽出を使用すると、選択したコードブロックから別の関数を作成し、必要なすべての変数を正しく渡し、返すことができます。
おわりに
上記の機能の動作を示すビデオを次に示します。
ReSharper C ++を使用するには、 個別のライセンスまたはReSharper Ultimateライセンスが必要です。
ReSharper C ++は、 個別に、または完全なReSharper Ultimateインストーラーの一部としてダウンロードできます。 どちらの場合も、30日間の試用期間が適用されます。