Qodana 2024.1 ヘルプ

構造検索

構造検索は、JetBrains IDE に組み込まれた強力で柔軟なメカニズムです。検索テンプレートを使用して、セマンティクスを考慮してコードベースをインスペクションできるようにします。独自の検索テンプレートを作成し、Qodana インスペクションとして使用できます。

使い方

例として、次の検索テンプレートを考えてみましょう。

$Instance$.$MethodCall$($Parameter$)

これにより、System.out.println() Java ステートメントを検出できます。System.out.println("Hardcoded text!") のようなハードコードされたテキストを含むステートメントを検出するには、テンプレートで以下に説明する修飾子を受け取る必要があります。

変数

説明

$Instance$

[0,1]

0 または 1 つの値を受け入れます。

$MethodCall$

text=println

println メソッドを検索しています。

$Parameter$

text=^\".*\" $

引用符で囲まれた任意のテキスト。

この手順では、Qodana を使用してコードベースをインスペクションするためにこの検索テンプレートを使用する方法を説明します。

  1. IntelliJ IDEA の構造検索ダイアログを使用して、テンプレートを作成します。

    Search template
  2. IntelliJ IDEA ドキュメントポータルの構造検索を使用して置換するページの説明に従って、テンプレートをインスペクションに変換します。例: Hardcoded-print として保存できます。

  3. 設定 | エディター | インスペクションを使用して、インスペクションの構造検索グループ内のインスペクションを有効にします。詳しくはプロファイルを構成するページを参照してください。

    Enabling inspection
  4. 設定ダイアログのインスペクションセクションで、更新されたプロファイルをエクスポートします。

  5. プロジェクトのルートディレクトリに qodana.yaml ファイルを作成し、そのファイル内のプロファイルの場所へのパスを指定します。

    profile: path: path/to/the/profile/file
  6. Qodana を使用してコードをインスペクションします。

    docker run \ -v <project-directory>:/data/project/ \ -e QODANA_TOKEN="<cloud-project-token>" \ jetbrains/qodana-jvm
  7. 構造検索インスペクションによって検出された問題は、Qodana レポートの構造検索カテゴリで確認できます。

    Observing the Structural Search inspection results

関連ページ:

構造検索と置換

従来の検索プロセスでは、ソースコードの構文とセマンティクスが考慮されていません。正規表現を使用している場合でも、IntelliJ IDEA はコードを正規表現として扱います。構造検索および置換(SSR)アクションを使用すると、コード構造を考慮して、コード内の特定のコードパターンまたは文法構造を検索できます。IntelliJ IDEA は、作成した検索テンプレートと適用した条件に基づいて、ソースコードのフラグメントを見つけて置き換えます。ターゲットを構造的に検索するに移動して、構造検索ダイアログを...

検索テンプレート、修飾子、スクリプトの制約

構造検索用のテンプレートを作成するときは、基本的にスクリプトを作成します。スクリプト作成プロセスを簡素化するために、IntelliJ IDEA は、検索テンプレートのプロトタイプとして使用できる事前定義された検索テンプレートのリストを提供します。既存の検索と置換テンプレートのリストにアクセスする方法については、構造的な検索と置換のセクションを参照してください。各検索または置換テンプレートは、条件 (修飾子) を追加して検索結果を絞り込むことができる変数で構成されます。修飾子は、検索テンプレートの...

構造検索を使用して置換する

構造検索と置換は、コードの特定のパターンを検索し、検索を絞り込む修飾子を追加できる強力なツールです。このチュートリアルでは、フィールド宣言を検索し、修飾子を追加し、変更されたテンプレートに基づいてコードインスペクションを作成します。必要に応じて、詳細に入る前に関連するビデオを見ることができます。ビデオは、以前のバージョンの IntelliJ IDEA 用に作成されたものであるため、若干異なる場合があります。構造検索ダイアログを開き、既存のテンプレートの 1 つを検索に使用します。既存のテンプレー...

プロファイルを構成する

インスペクションプロファイルは、有効なインスペクション、これらのインスペクションが分析するファイルのスコープ、およびインスペクション重大度設定に関する情報を保持します。IntelliJ IDEA には、2 種類のプロファイルがあります。プロファイル IDE に保管は、IntelliJ IDEA 構成ディレクトリの inspection フォルダーに保存され、すべてのプロジェクトで使用できます。プロジェクトにコピーオプションを使用して、IDE プロファイルを現在のプロジェクトにコピーできます。プロファイル...

プラグイン

リポジトリの既存のプラグインを使用するか、独自のプラグインを開発することで、Qodana を拡張できます。リポジトリからのプラグイン:このセクションでは、ペソインスペクション (EA 拡張) プラグインで強化された PHP 用の Qodana リンターを使用して PHP コードをインスペクションする方法について説明します。JetBrains マーケットプレイスまたは任意のカスタムリポジトリの関連する IDE プラグインに対してこれらの手順を繰り返すことができます。プラグインをインストールして設定する...