メインコンテンツ

Visual Studio Code での Polyspace as You Code の実行と結果のレビュー

Visual Studio Code エディターで保存するたびに Polyspace as You Code を実行するか、または必要に応じて実行するかを選択できます。解析はエディターで現在アクティブなファイルに対して実行されます。解析の実行後に、バグおよびコーディング規約ルール違反がソース コード マーカーとして表示されるか、または [Problems] パネルのリストで表示されます。

インストールの確認と拡張機能の開始

Visual Studio Code に Polyspace® as You Code 拡張機能がインストールされていることを確認するには、[拡張機能] ビューの [インストール済み] セクションを確認します。

このビューを開くには、Visual Studio Code で [View][Extensions] を選択するか、または左側のアクティビティ バーで Visual Studio Code extensions icon をクリックし、インストール済み拡張機能のリストで Polyspace as You Code を見つけます。

Polyspace as You Code 機能拡張を開始するには、エディターで C または C++ ファイルを開きます。C または C++ ファイルがエディターで開いていない場合、Visual Studio Code を開いても拡張機能は自動的に開始しません。拡張機能のステータスを確認するには、次のいずれかを行います。

インストール済みの拡張機能のリストで Polyspace as You Code を見つけます。

メモ

  • "制限モード" でフォルダーを開くと、Polyspace as You Code 拡張機能は無効にされます。拡張機能を有効にするには、フォルダーを信頼できるフォルダーとしてマークします。Workspace Trust を参照してください。

  • Windows® システムでのパフォーマンス向上のため、解析するファイルをネットワーク ドライブに保存しないでください。

ステータス バーでの拡張機能情報の表示

拡張機能を開始すると、Polyspace as You Code により、構成のエラー、現在選択されているファイルに対して解析が実行中であるかどうかなど、拡張機能の状態に関する情報を示すアイコンがステータス バー (左下) に表示されます。

  • アイコンにカーソルを合わせると、追加情報を含むツールヒントが表示されます。

  • アイコン (該当する場合) をクリックして一般的な操作 (拡張機能設定を開く操作や [出力] ビューを表示する操作など) を実行します。

ステータス バーに表示される情報は、グローバル (VS Code global icon) であるか、または現在されているファイルに特有 (VS Code file icon) です。ファイル特有のステータス バー アイコンは、別のファイルを選択すると更新されます。

Polyspace as You Code ステータス バー アイコンを無効にしてから再度有効にするには、アイコンを右クリックし、メニューから適切なオプションを選択します。

追加の Polyspace ビューを開く

Polyspace as You Code 拡張機能により、構成の状態と解析対象として選択したファイルの状態に関する情報を示すさまざまなビューが、サイドバーに表示されます。左側のアクティビティ バーで Grey Polyspace icon をクリックすると、Polyspace ビューが表示または非表示になります。

[品質監視] ビュー

このビューには、解析対象として選択したすべてのファイル、各ファイルの解析のステータス、調査結果の数が表示されます。

このビューでは、ビューに追加したすべてのファイルのファイル単位の解析を開始することや、特定のファイルのみを解析することもできます。

[Analysis Options: Add To Quality Monitoring On Save] 設定を使用して、ファイルの保存時 (Ctrl + S) にこのビューにファイルを追加する操作を有効または無効にします。Configure Analysis Behavior On Saveを参照してください。ファイルを手動で追加するには、エディター、[エクスプローラー] ビュー、またはサイド バーの [ソース管理] ビューでファイルを右クリックします。

[ヘッダー] ビュー

ファイルの解析時に、解析対象ファイルにインクルードされているヘッダー ファイルが、解析対象ファイルと同じフォルダーに含まれている場合は、Polyspace はこれらのヘッダー ファイルも解析します。Polyspace がヘッダー ファイルの調査結果を報告する場合、[品質監視] ビューの解析対象ファイルの横に [H] が表示されます。このビューで解析対象ファイルをクリックすると、[ヘッダー] ビューにヘッダー ファイルがリストされます。

Polyspace as You Code Headers view in VSCode

調査結果が含まれているヘッダー ファイルのみがリストされます。[ヘッダー] ビューでヘッダー ファイルをクリックすると、[問題] ビューでその調査結果が開き、"エディター" で調査結果の検証が開始されます。

[結果の詳細] ビュー

[問題] ビューまたはエディターで調査結果を選択すると、その調査結果に関する追加情報がこのビューに表示されます。これには、すべての修正または正当化、トレースバック、ベースラインからインポートされたレビュー情報などが含まれます (使用可能な場合)。

複数のコード行を選択すると、選択されたコードで報告されているすべての調査結果に関する追加の詳細情報がこのビューに表示されます。

調査結果のコンテキスト ヘルプを表示するには、open documentation icon をクリックします。

調査結果を選択するたびに [結果の詳細] ビューが更新され、選択された調査結果の情報が表示されます。このビューをロックして、ソース コードまたは [問題] ビューで調査結果を閲覧するときにビューが更新されないようにするには、右上の Unlocked icon アイコンをクリックします。ビューのロックを解除するには、locked icon をクリックします。

[問題] ビュー

[問題] ビューには、解析のすべての調査結果が表示され、各行に調査結果が 1 つずつリストされます。各行には次のような追加情報が表示されます。

  • 欠陥またはコーディング ルールの名前、ファミリ、説明

  • 調査結果を含むファイルの名前

  • レビュー情報

調査結果はファイル別にグループ化されています。[問題] ビューの右側の隅にあるフィルターを使用して、レビューのフォーカスを絞り込みます。[問題] ビューを変更して、ツリー形式または表形式で結果を表示することができます。メッセージが長すぎる場合は、メッセージを右クリックし、[メッセージのコピー] を選択して、メッセージをシステムのクリップボードにコピーします。コピーしたメッセージは、任意のテキスト エディターに貼り付けることができます。

Problems view in Visual Studio Code

[問題] ビューに表示される結果は、[品質監視] ビューで選択したファイルの結果を表します。[問題] ビューの結果の数が変わることがあります。この数は、すべての解析済みファイルの結果を表すものではありません。

[品質監視] ビューでファイルを選択すると、[問題] ビューに以下の結果が表示されます。

  • [品質監視] ビューに表示される各ファイル (選択されたファイルを含む)。

  • [品質監視] ビューで選択したファイルのヘッダー ファイル。

[品質監視] ビューで別のファイルを選択すると、次の処理が行われます。

  • Polyspace によって、以前に選択されていたファイルのヘッダー ファイルの結果が [問題] ビューから削除されます。

  • 新しく選択されたファイルのヘッダー ファイルの結果が [問題] ビューに表示されます。

[構成] ビュー

[構成] ビューには、[解析オプション] の現在の設定と、生成されたビルド オプション ファイルのステータスが表示されます (該当する場合)。

このビューでは以下の操作が可能です。

  • checker selection icon をクリックして [チェッカーの選択] ウィンドウを開く。Visual Studio Code での Polyspace as You Code 用チェッカーの構成を参照してください。

  • settings icon をクリックして解析オプションを構成する。Configure Analysis Settingsを参照してください。

  • Documentation icon をクリックして Polyspace ドキュメンテーションを開く。

  • fast mode toggle icon をクリックして高速解析モードのオン/オフを切り替える。

  • Sign-in icon をクリックして MathWorks アカウントにサインインする。これは、Polyspace as You Code で Polyspace Copilot を使用する場合の要件です。

[ベースライン] ビュー

現在のフィルター設定 (新しい結果のみ、またはすべての結果を表示するための設定)、使用可能なローカル ベースライン、および Polyspace Access™ ベースラインのダウンロード ステータスを表示します。ベースライン設定を構成している場合は、Polyspace Access サーバーの情報と、ベースラインとして使用するプロジェクトの情報が表示されます。Visual Studio Code で Polyspace as You Code の結果をベースラインとして設定するを参照してください。

Visual Studio Code baseline view

このビューでは以下の操作が可能です。

  • フィルター ボタンをクリックして、ベースラインと比較して新しい結果だけに絞り込むフィルタリングを有効または無効にする。

  • [すべて保存] ボタンをクリックして、品質監視リストに現在含まれているすべてのファイルのローカル ベースラインを作成するか、または [更新] ボタンをクリックしてすべてのローカル ベースラインを更新する。

  • Download baseline をクリックして Polyspace Access ベースラインをダウンロードする。

  • Open basline in Access UI をクリックして、Polyspace Access インターフェイスでベースライン プロジェクトを開く。

  • settings icon をクリックしてベースライン設定を開く。

ベースラインを削除するには、ベースラインの名前の横にある baseline close button をクリックします。

ご使用の Polyspace as Your Code のバージョンよりも古い Polyspace 製品を使用して、ベースライン実行の結果が生成された場合には、このビューに警告が表示されます。

解析の実行

ファイルを保存するたびに、またはオンデマンドで随時、解析を実行できます。

保存時

既定では、Polyspace as You Code は保存時に現在のファイルを [品質監視] リストに追加して、このファイルを解析します。数秒以内にソース コードに解析結果が表示されます。エラーの場合は、ポップアップにエラー メッセージが表示されます。さらに詳しく診断するには、[表示][出力] を選択します。[出力] ビューの右上のドロップダウンから [Polyspace as You Code] を選択します。

解析の実行後に、解析結果はソース コード マーカーとして表示されます (ソース コード トークンの下の波線)。エラーの位置は、スクロール バーに赤色のマークとしても表示されます。エラーの位置をクリックすると、対応するソース コードに移動します。

保存時の解析を無効にするには、次のようにします。

  1. Ctrl + , (コンマ) を押して設定を開き、設定の検索バーに polyspace.analysisOptions OnSave と入力します。

  2. [Analysis Of Files On Save] の設定を選択解除します。

結果が表示されない場合は、Polyspace as You Code での解析失敗または予期しない結果のトラブルシューティングを参照してください。

オンデマンド

Polyspace 解析を明示的に開始することもできます。解析を開始するには、次のいずれかを行います。

  • [エクスプローラー] ビューでソース ファイルを右クリックするか、またはエディターでファイルのコンテンツ自体を右クリックして、[Polyspace 解析の実行] を選択する。

  • [品質監視] ビューの再生ボタンをクリックする。

  • ソース ファイルにカーソルを合わせて Ctrl + Shift + Alt + A を押す。

結果のレビュー

解析後、結果が 2 つの形式で表示されます。

  • ソース コード マーカー (ソース コード トークンの下の波線)。

    ソース コード トークンにカーソルを合わせると、結果の詳細が表示されます。

  • [問題] パネルのリスト。

    このパネルを開くには、[表示][問題] を選択します。

    調査結果を選択すると、[結果の詳細] ビューで結果またはイベント トレースに関する追加の詳細情報を確認できます。

    このビューで open documentation icon をクリックすると、この調査結果のコンテキスト ヘルプが開きます。

欠陥またはコーディング ルール違反について提案される修正の適用

Polyspace からコード内の一般的な欠陥またはコーディング ルール違反が報告される場合、Polyspace as You Code 拡張機能により、これらの調査結果に適用できる 1 つ以上の修正が提案されます。

提案された修正を適用するには、最初にエディターまたは [問題] パネルで調査結果を選択します。[結果の詳細] パネルに、提案された修正が表示されます。提案された修正をポイントして、次のいずれかのオプションを選択します。

  • [差分ビューに修正を表示] — 現在のファイルと、提案された修正が適用されたファイルの比較を表示します。

  • [現在の結果を修正] — 選択した調査結果に、提案された修正を適用します。

  • [選択した調査結果のすべてのインスタンスを修正] — 現在のファイル内の同じ欠陥または同じコーディング ルール違反のすべてのインスタンスに、提案された修正を適用します。

Result Details pane with two fixes and the options available.

電球メニューから、提案された修正を適用することもできます。簡単な修正のオプションの形式は Fix checkerName: proposedFix です。ここで checkerName は選択されている欠陥チェッカーまたはコーディング ルールの名前、proposedFix は Polyspace がコードに適用する修正です。Polyspace によりコードが編集され、選択するオプションに応じて、問題または現在アクティブなファイルに出現するその問題のすべてのインスタンスが修正されます。提案される修正が複数ある場合は、使用可能なすべての修正がメニューに表示されます。

VSCode light bulb menu

以下の表に、Polyspace が修正を提案する一般的な欠陥およびコーディング ルール違反と、これらの問題を報告する Polyspace チェッカーを示します。

一般的な欠陥またはコーディング ルール違反問題を報告する Polyspace チェッカー
コンパイル時に constexpr 指定子が欠落していると評価される可能性がある関数。
値によってオブジェクトをキャストする std::any_cast の非効率な使用
std::string operator+() の非効率な使用
std::map または std::unordered_map のキーへの値の挿入または代入のための [] 演算子の非効率な使用 (C++ 17 以降のみ)
パラメーターの値渡しが計算量の多いコピーになる
未変更の、値渡しされる、コピーの計算量が多いパラメーター
ローカル変数が const 参照からの計算量の多いコピーで作成された後、変更されない
const として宣言されていない未変更の変数
return ステートメントでの std::move への不必要な呼び出し
未使用のインクルード
未使用のパラメーターです
std::endl の使用

コード注釈を使用した結果の正当化

結果を修正しない場合は、結果を再度修正しなくても済むようにするため、コード注釈を結果に追加できます。特定の構文に従っている注釈の場合、以降の Polyspace as You Code 実行では注釈が読み取られ、対応する結果が表示されなくなります。

正当化を適用するには、最初にエディターまたは [問題] パネルで結果を選択します。[結果の詳細] パネルに正当化が表示されます。正当化をポイントして、次のいずれかのオプションを選択します。

  • [現在の結果を正当化] — 選択した結果に、正当化の注釈を追加します。

  • [選択した調査結果のすべてのインスタンスを正当化] — 現在のファイル内の同じ欠陥または同じコーディング ルール違反のすべてのインスタンスに、正当化の注釈を追加します。

  • [クリップボードにコピー] — 結果のファミリと頭字語をクリップボードにコピーします。この情報は、正当化カタログを作成するときに使用できます。Use a Justification Catalog to Autocomplete Annotations in Polyspace as You Code pluginsを参照してください。

Result Details pane with a potential justification and the options available

電球メニューから正当化を適用することもできます。

  • 結果が含まれているソース コード トークンの横にある電球アイコンをクリックして、[注釈付きで result_name を正当化] を選択します。注釈は結果と同じ行に入力されます。

  • 現在のファイルで同じ欠陥またはコーディング ルール違反の調査結果を一括で正当化するには、その調査結果のインスタンスを選択して、電球メニューから [すべての result_name を正当化する] オプションをクリックします。Polyspace により、コードでこの調査結果を含む各行に注釈が挿入されます。

  • レビュー情報をベースライン実行からインポートする場合に、ベースライン実行の当該結果に割り当てられているすべてのステータス、重大度、コメントを含めるには、[result_name にベースライン コメントの注釈を付ける] を選択します。インポートされたステータスが [調査予定][修正予定][その他] のいずれかに設定されている場合、注釈では結果は非表示になりません。

複数のコード行を選択すると、選択範囲内の各調査結果の注釈オプションが電球メニューに表示されます。

Polyspace as You Code により、C ファイルの場合はコード注釈が "/* */" で囲まれたコメントとして挿入されるか、C++ ファイルの場合は "//" が接頭辞として追加されます (C++ スタイル)。C ファイルのコメント形式は MISRA C:2004 Rule 2.2 に準拠します。

正当化された結果は [問題] パネルから削除され、以降の解析では表示されません。

参考:

結果の状況依存ヘルプの表示

結果の状況依存ヘルプ ページを表示すると、特定の結果タイプに関する詳細情報を確認できます。

  • 現在選択されている調査結果の状況依存ヘルプを開くには、[結果の詳細] ビューで open documentation icon をクリックします。追加の Polyspace ビューを開くを参照してください。

  • また、任意の Polyspace as You Code 結果の状況依存ヘルプを表示するには、[コマンド パレット] (Ctrl + Shift + P) に移動して [Polyspace: コンテキスト ヘルプを開く] を選択します。メニューから結果ファミリを選択して、結果名 (UNMODIFIED_VAR_NOT_CONST など) を入力します。

ご使用のシステム ブラウザーで Polyspace as You Code 拡張機能に関する検索可能なドキュメンテーション全体を開くには、[コマンド パレット] (Ctrl + Shift + P) に移動して [Polyspace: ドキュメンテーションを開く] を選択します。

チェッカーとその他の設定の構成

既定では、Polyspace as You Code は開発者が最も関心がありそうな欠陥をチェックします。Visual Studio Code の Polyspace as You Code 拡張機能設定で、チェッカーのセットを展開してその他の構成を行うことができます。

Ctrl + , (コンマ) を押して設定を開き、設定の検索バーに polyspace と入力します。

たとえば、次の操作を行えます。

すべての設定のリストについては、Configure Polyspace as You Code Extension in Visual Studio Codeを参照してください。