に参加して、VS Code の AI 支援開発について学びましょう。

C++ コードのリファクタリング

Visual Studio Code の C/C++ 拡張機能には、コードの実行時動作を変更することなく、コードの構造、可読性、保守性を向上させるのに役立つ複数のリファクタリング機能があります。これには、メソッドの抽出や宣言と定義の作成などの機能が含まれます。

宣言または定義を作成する

C/C++ 拡張機能にこれらの項目を生成させることで、関数の宣言または定義を作成するプロセスを簡素化します。この機能は、メンバー関数、クラスとしての名前空間、およびテンプレートに適用されます。

Create a definition and a declaration across two files

関数の宣言または定義を作成するには、次のいずれかの方法を使用します。

  • クラス関数の定義を選択し、コードアクション (電球アイコン) を選択してから、宣言の作成を選択します。同様に、定義を作成するには、関数宣言を選択し、コードアクションを選択してから、定義の作成を選択します。
  • 関数の宣言または定義を右クリックし、コンテキストメニューから定義/宣言の作成を選択します。コードに基づいて、定義または宣言が作成されます。
  • 関数を選択し、コマンドパレット (⇧⌘P (Windows, Linux Ctrl+Shift+P)) を使用して、コマンド 宣言/定義の作成を入力します。コードに基づいて、定義または宣言が作成されます。

定義と宣言が作成される場所は、コードで確立した以前のパターンに基づいています。たとえば、以前に同じファイルに定義と宣言を追加した場合、拡張機能も新しいものを同じファイルに追加します。関数の順序は自動的に維持されます。

Create a definition and a declaration in the same file

ソースファイルとは異なるファイルで宣言または定義を定義した場合、拡張機能はあなたの規則に従います。たとえば、名前が一致するヘッダーファイルとソースファイルの場合、ヘッダーファイルがソースファイルに含まれていなくても、両方が識別されます。この場合、宣言または定義が追加されると、ヘッダーファイルがソースファイルに自動的に参照されます。

それ以外の場合、拡張機能は現在のファイルの名前に一致する新しいヘッダーファイルまたはソースファイルを作成します。この新しいファイルには、生成された新しい宣言または定義が含まれます。新しいファイルは現在のファイルに自動的に参照されます。

テンプレートの場合、関数テンプレートがヘッダーファイルで宣言されている場合、その関数テンプレートの定義は同じヘッダーファイルで作成されます。これは、クラステンプレートの非テンプレートメンバー関数にも適用されます。

宣言または定義をコピーする

宣言または定義をコードに追加する場所を選択したい場合は、コードアクション 宣言/定義をコピーを使用できます。これにより、宣言または定義がコードに直接追加されるのではなく、クリップボードに追加されます。

コードアクションを呼び出すには、クイックフィックスが利用可能な関数を選択し、コードアクション (電球) を選択して、'YourFunctionName' の定義をコピーまたは'YourFunctionName' の宣言をコピーを選択します。

Copy a declaration or definition

メソッドに抽出する

メソッドの抽出リファクタリング機能を使用すると、コードブロックを別のメソッドに抽出して、コードの可読性を向上させ、重複を減らし、コードをよりモジュール化するのに役立ちます。

メソッドを抽出するには、抽出したい C++ コードを選択し、コードアクション (電球) を選択してから、関数に抽出を選択します。または、コードを右クリックしてリファクタリング > 抽出を選択するか、キーボードコマンド (Windows の場合は Ctrl + Shift + R, Ctrl + E) を使用して詳細情報を取得します。

次に、作成された新しい関数に名前を付けることができます。選択したコードを含む新しい関数は、現在の関数の上に配置されます。

Extract Method and create declaration

クイックフィックス/コードアクション

C/C++ 拡張機能は、コードコンテキストに基づいて C++ コードを修正および改善する方法について、C/C++ 固有の提案を提供します。これらの提案は、シンボルにカーソルを合わせてクイックフィックスリンクを選択するか、コードの横に表示されるコードアクション (電球) を選択することで表示できます。たとえば、コードの一部をメソッドに抽出できる場合、電球アイコンを選択すると、メソッドに抽出が表示されます。上記の機能以外にも、C/C++ 拡張機能は次の状況でクイックフィックス/コードアクションを提供します。

不足しているヘッダーファイルを追加する

C++ コードに不明なシンボルがあり、C/C++ 拡張機能がワークスペース内で正しいヘッダーファイルを識別した場合、クイックフィックスが利用可能になります。クイックフィックスを選択すると、必要なヘッダーファイルのインクルードが現在の C++ ファイルの先頭に追加されます。

Add Missing Include in code using a code action

次のステップ

さらに読む

他に質問がある場合や問題が発生した場合は、GitHub で問題を提出してください。問題の診断に役立つ拡張機能からのログ情報の提供を求められる場合があります。C/C++ 拡張機能のログ記録で拡張機能ログの提供に関するヘルプを参照してください。

© . This site is unofficial and not affiliated with Microsoft.