Visual Studio Code 向け Perforce Static Analysis 拡張機能をお使いになる前に

C/C++ で利用可能なエンジンモードの詳細については、C/C++ 解析エンジンモードの指定を参照してください。

Visual Studio Code 向け Perforce Static Analysis 拡張機能を使用すると、チェックイン前に指摘を検出して修正することができます。拡張機能では、多数の言語の解析をサポートしています。サポートされている言語の詳細については、弊社のサポートされている IDE を参照してください。

また、プロジェクト設定や指摘フィルター、解析設定などを個人設定に合わせてカスタマイズすることもできます。これらの機能の詳細については、以下のトピックを参照してください。
Perforce Static Analysis 拡張機能を想定どおりに動作させるには、Visual Studio Code でフォルダーを開いた状態にする必要があります。

Validate サーバー上のプロジェクトまたはストリームへの接続

デスクトップ解析から最大の益を得られるのは、ローカルプロジェクトを Validate サーバー上のプロジェクトまたはストリームに接続するときです。ローカルプロジェクトは、追加のソースファイル (共有ライブラリなど) が解析されたサーバー上に生成された Validate knowledge base (ナレッジベース) を組み込んでいる間に、即座に解析されます。サーバープロジェクトまたはストリームに接続すると、指摘ステータス情報を統合ビルド解析およびチームメンバー間で共有することもできます。

欠陥を引用するには、プロジェクトを Validate サーバーに接続する必要があります。この手順は、各プロジェクトで 1 回だけ実行します。

クラシック認証を使用したプロジェクトまたはストリームへの接続

  1. Visual Studio Code のアクティビティバーで、Klocwork 拡張機能をクリックします。
  2. [アクション] で、[認証する] をクリックします。
  3. Validate サーバーの URL が正しいことを確認してから、Enter キーを押します。
  4. ユーザー名が正しいことを確認してから、Enter キーを押します。
  5. パスワードが正しいことを確認してから、Enter キーを押します。
  6. プライマリサイドバーの [Klocwork プロジェクト設定] で、[接続設定] を展開します。
  7. [Klocwork プロジェクト] フィールドに入力し、Enter キーを押します。

SAML または OIDC 認証を使用してプロジェクトまたはストリームに接続する

Visual Studio Code で SAML または OIDC を使用して Validate の認証をする方法については、このビデオを視聴するか、またはビデオの後の手順を確認してください。

Validate 2024.3 では、認証プロセスが更新されました。まだ Validate 2024.2 を使用している場合は、2024.2 のオンラインヘルプの説明に従ってください
  1. Visual Studio コードで、[ファイル] > [プレファレンス] > [設定] をクリックします。
  2. [設定] 検索バーに「Klocwork」と入力します。
  3. [Klocwork システムプロパティ: Klocwork 認証場所] で、以下のいずれかを実行します。
    • マシン上の kwauth の場所 (たとえば、Build Tools または Auth Tools パッケージ内など) を入力します。
    • [Klocwork システムプロパティ: Klocwork ツールの場所] フィールドで指定されたパッケージに含まれている kwauth バージョンを使用するには、フィールドを空のままにしておきます。
  4. 使用する kwauth バージョンは、Klocwork コマンドラインツールのバージョンより古いものにすることはできません。
  5. アクティビティバーで、Klocwork 拡張機能をクリックします。
    • [Klocwork プロジェクト設定] で、Klocwork のホストとポートの情報が正しいことを確認します。
    • [アクション] で、[認証する] をクリックします。
  6. 認証する Validate サーバーの URL が正しいことを確認してから、Enter キーを押します。ブラウザーで「Validate デバイス認証」ページが開きます。Visual Studio Code に情報ダイアログが表示され、アクセスコードと Validate デバイス認証ページの URL が表示されます。
  7. アクセスコードは 3 分間有効です。
  8. [コードをコピーする] をクリックします。
  9. 「Validate デバイス認証」ページで、アカウントにサインインしてから、コードを貼り付けて [デバイスを認証する] をクリックします。Validate では、デバイスが接続されたことが示され、アプリケーションでは認証が成功したことが示されます。
  10. プライマリサイドバーの [Klocwork プロジェクト設定] で、[接続設定] を展開します。
  11. [Klocwork プロジェクト] フィールドに入力し、Enter キーを押します。

Klocwork ツールの場所を更新する

SAML または OIDC でサポートされている Validate サーバーで認証する場合で、他のデスクトップツールまたはビルドツールのバージョン 24.1 以前を引き続き使用する場合は、以下のステップに従います。

  1. アクティビティバーで、[拡張機能] をクリックします。
  2. [Perforce 静的解析] を右クリックし、[拡張機能設定] を選択します。
  3. [検索設定] で、Klocwork ツールの場所 と入力して、Enter を押します。
  4. Klocwork ツールの場所の横に、24.1 以前のツールのインストールパスを入力します。
  5. [OK] をクリックします。

Klocwork のアクション

Klocwork メニュー (アクティビティバーの「kw」アイコン) で [アクション] ビューを選択し、解析の実行、プロジェクトの同期、またはKlocwork サーバーに対するプロジェクトの認証を行うことができます。

解析の実行

[解析の実行] を選択することで、現在のワークスペースに対して解析を手動で実行し、コード内で検出された問題を見つけることができます。Klocwork がファイル内の問題を検出すると、[問題] タブに指摘のリストが表示されるだけでなく、エディターの右の余白に指摘マーカーが表示されます。

同期

[同期] を選択することで、ローカルプロジェクトで見つかった指摘を、Klocwork サーバーで見つかった指摘と手動で同期させることができます。同期は、接続したプロジェクトで解析を実行している間に、自動的に実行されることに注意してください。拡張機能を長期間使用している場合、サーバーから欠陥を引用している場合、または最近の引用活動をすぐにプルダウンしたい場合は、手動で実行することが望ましいでしょう。

認証

[認証] を選択することで、認証設定を検証できます。このオプションを選択すると、Klocwork サーバーに対してプロジェクトを認証するには、Klocwork サーバーの URL、ユーザー名、およびパスワードを入力するように求められます。これは、接続したプロジェクトで解析を実行し、欠陥を引用するために必要です。

継続的解析

continuous analysis (継続的デスクトップ解析) は、Visual Studio Code で作業中に自動指摘検出とエラーのハイライトを提供します。この機能は、[ファイル] > [プリファレンス] > [設定] > [拡張機能] > [Klocwork] の順に開き、[継続的解析を有効にする] を選択することによって有効にします。この設定を有効にすると、2 秒を超えてタイピングを中止するたびに Klocwork によってコードの解析が行われます。

'Klocwork 解析の実行' コマンドを実行すると、この拡張機能によってすべてのファイルが保存されます。解析が完了すると、結果が [問題] タブに表示されます。このタブの詳細については、フィルターオプションを参照してください。

欠陥の管理

欠陥履歴により、選択した指摘に対して行われた以前のコメントや引用の変更を確認できます。それには、次のようにアクセスできます。

  1. Klocwork 解析中に見つかった指摘は、[問題] タブにあります。このタブを表示するには、[ビュー] > [表示] > [パネルを表示] の順に選択します。リストで指摘をダブルクリックして、ソースコード内でそれを表示します。
  2. 指摘に関するクイックアクションメニュー (電球アイコン) にアクセスすると、次のことができます。
    • (これまでの指摘履歴が存在する場合に) 指摘の履歴を確認するには、[Klocwork 欠陥履歴の表示] を使用します。
    • 指摘に関するチェッカーヘルプにアクセスする
    • 指摘ステータスを設定する

    同じ範囲内に複数の欠陥が存在する場合、検出された指摘ごとに個別のヘルプリンクが表示されます。

フィルターオプション

Klocwork extension for Visual Studio Code により、[問題] タブ内で指摘を表示する方法をカスタマイズできます。

  • 指定したステータスの指摘を表示するフィルター(「解析」と「修正」がデフォルトで選択されています)
  • ローカルの指摘やシステムの指摘を表示するフィルター
  • 分類基準を表示するフィルター
  • 重大度を表示するフィルター

変更を適用するには、フィルターを調整した後に、[フィルターオプション] ビューで [フィルターの適用] を選択します。

Klocwork プロジェクト設定

Visual Studio Code 内で、Klocwork メニューにある [Klocwork プロジェクト設定] を開くことで、Klocwork 拡張機能に関する設定を行うことができます。以下を行うことができます。

  • [接続設定] で、次を定義できます。
    • Klocwork サーバーの場所 (ホスト、ポート、安全な接続)
    • ライセンスホストとポート (Klocwork サーバーの構成済みライセンス設定と異なる場合)
    • 接続する Klocwork プロジェクトの名前
    このダイアログを初めて開いたときに、[Klocwork プロジェクト設定の初期化] を選択して、ワークスペース用の Klocwork 解析フォルダーを自動的に作成する必要がありす。
  • [ビルドスペック設定] で、次を行うことができます。
    • [ビルドスペックの自動更新] を設定して、Klocwork 拡張機能にビルドスペックを生成させるようにします。これを設定しなければ、拡張機能の外部で生成する必要があります。
    • ビルドスペック生成コマンド (たとえば、kwinject msbuild /t:rebuild cs.sln -p:UseSharedCompilation=false -p:ProduceReferenceAssembly=false) を追加します。
    • ビルドスペックの場所を手動で設定します (デフォルトでは、現在のワークスペースのルートディレクトリになります)。

'task.json' を使用して、'ビルドスペック生成コマンド' を手動で作成する

Visual Studio Code 拡張機能では、ビルドスペックファイルの作成と更新を自動的に管理できます。これを行うには、Klocwork メニューから、[Klocwork プロジェクト設定] ビューで、[ビルドスペック設定] を正しく設定する必要があります。
  • [ビルドスペックの自動更新] を設定して、Klocwork 拡張機能にビルドスペックを生成させるようにします。
  • [ビルドスペックの場所] で、ビルドスペックの場所を指定します。これにより、kwinject.out という名前のファイルで、ワークスペースのルートディレクトリがデフォルトになります。
  • ビルドスペック生成コマンドは、設定した Klocwork ツールを使用してビルドスペックを生成する、Klocwork コマンドです。

このコマンドを手動で作成するために、task.json ファイルをガイドとして使用できます。build specification (ビルドスペック) の作成を参照してください。

たとえば、maven プロジェクトの場合、次のように task.json ファイルでタスクを定義しておくかもしれません。
        {
            "label": "compile",
            "type": "shell",
            "command": "mvn",      <-- (1) maven project
            "args": [
                "compile"          <-- (2) compilation arguments
            ],
            "group": "build"
        }
このタスクから、それは maven プロジェクトであり、実行する必要があるコンパイル引数であると推定できます。buildspec ファイルの作成方法に関する知識があれば、ビルドスペック生成コマンドkwmaven compile に手動で設定できます。

buildspec コマンドには、--output <location> パラメーターを手動で追加しないでください。拡張機能は、[buildspec の場所] 設定でこれを行います。

Visual Studio Code 拡張機能用のキーバインドの追加

Klocwork extension for Visual Studio Code に使用されるカスタムコマンドには、キーバインドでアクセスできます。拡張機能は、デフォルトでそうしたキーバインドに寄与することはありませんが、ワークフローをカスタマイズするために追加できるいくつかの例をここに示します。

拡張機能によって与えられるコマンドは、[拡張機能] -> [Klocwork] -> [機能の提供] -> [コマンド] にあります。
カスタムキーバインドを追加するには、以下の操作を行います。
  1. F1 (または CTRL+SHIFT+P) を押して、Visual Studio Code でコマンドパレットを開きます。
  2. コマンドパレットから、[プリファレンス: キーボードショートカットを開く] を実行します。
  3. ショートカットキーを追加する対象の設定を見つけます。たとえば、'View: Show Klocwork' はアクティビティバーで Klocwork パネルを開くコマンドであり、'Run Klocwork Analysis' は Klocwork 解析を実行するコマンドです。
  4. 設定の横にある '+' 記号を選択し、望みのキーバインドを入力します
以下は、Klocwork 拡張機能に追加できる一部の例です。
例 1: Klocwork 解析を実行するためのキーバインドを追加する
    {
        "key": "ctrl+k ctrl+a",
        "command": "kwvscodeextension.runAnalysis"
    }
例 2: Klocwork パネルを開くためのキーバインドを追加する
    {
        "key": "alt+shift+k",
        "command": "workbench.view.extension.klocwork-options"
    }

チェッカーの有効化および無効化

Configuration Editor でチェッカーの有効と無効を切り替えます。チェッカーの詳細については、C および C++ チェッカーリファレンスJava チェッカーリファレンス、または C# チェッカーリファレンスを参照してください。[検索] フィールドを使用して、チェッカーのコード、タイトル、リファレンス、カテゴリ、または分類基準別に検索します。変更内容が反映されるのは、次回解析を開始するときです。

コマンド kwcheck enablekwcheck disable を使用することもできます。

Visual Studio Code に関する注意: 接続されたプロジェクトの場合、VS Code 拡張機能は、サーバーのプロジェクトチェッカー構成を使用して、それらを自動的に同期します。ローカルプロジェクト用にチェッカーを有効または無効にする場合は、スタンドアロン Configuration Editor の使用を参照してください。