問題タブ [structural-search]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
598 参照

java - クラスに不足している注釈を追加するために IDEA で構造的な置換を作成する方法

他の既存の注釈を削除せずに、不足している注釈をクラス/インターフェイス/列挙に追加するための IntelliJ IDEA (将来の検査)の構造置換テンプレートを見つけようとしています。

これまでのところ、次のいくつかの種類を試しました

検索テンプレート:

置換テンプレート:

しかし、私の試みはどれもうまくいきませんでした。うまくいくと思います

  • 既存のクラス注釈の任意のセットを使用し、それらの潜在的な値も保持する必要があります。
  • クラスにアノテーションがまったくない場合、
  • アイデア14でもアイデア15でも、
  • また、クラスのコンテンツをそのままにしておく必要があります。

たとえば、次のように

に置き換える必要があります

誰かアドバイスしてくれませんか?

0 投票する
1 に答える
198 参照

java - IntelliJ 構造検索ジェネリック

たぶん、IntelliJs の構造検索を理解していないのではないでしょうか。

次のパターン例に一致するすべての出現箇所を見つけたい:

私の働いていないアプローチは

構造検索はそれをどのように見つけますか?

0 投票する
1 に答える
479 参照

java - Intellij Structural Search 非最終版

を使用してCopy existing template...、ループの構造検索を見つけました。

変数が final でない for ループのみを検出するように拡張したいと考えています。

次のものが見つかるはずです。

ただし、次のことはできません。

現時点では、最終と非最終の間に区別がないため、明らかに両方が見つかります。この余分なチェックを追加するにはどうすればよいですか?

0 投票する
2 に答える
1142 参照

android-studio - Intellij検索と置換パターンを使用して「改行中括弧」を削除するには?

次の検索と置換テンプレートを使用して、中括弧が新しい行に記述されているすべての if ステートメントを見つけようとしています。

検索テンプレート:

テンプレートを置換:

テンプレートエンジンが両方のテンプレートを区別しない場合、私が直面している問題。検索テンプレートを正しいものに置き換えるように提案されますが、「正しい」テンプレートも欠陥のあるものとして検出されます。

ある種の正規表現を使用してこれを回避する方法はありますか?

編集:Android Studioに取り組んでいます。会社の lint ルールのセットを生成しようとしています コード スタイリング規則は、警告またはエラーとして表示されます

0 投票する
1 に答える
144 参照

intellij-idea - 構造検索 Intellij IDEA : 別のクラスを拡張するすべてのクラスの出現を見つける方法

特定のクラスのサブクラスの出現をすべて検索する方法はありますか?

クラスがAbstractItemあり、このクラスの実装がたくさんあるとしAbstractItemます。ここで、すべてのサブクラスがどこで使用されているかを知りたいです。

Intellij IDEA の構造検索パターンを使用して、すべてのサブクラスのすべての出現を検索できますか?

ありがとう、デトレフ

0 投票する
1 に答える
205 参照

intellij-idea - Intellij IDEA Structural Replace でコード ブロックを除外する方法

Structural Replace に基づいて独自の検査を作成しています。たとえば、次のような変換コードの検査を行いたいとします。

の中へ

しかし、次のようなコードに反応させたくありません。

使ってみた

オプションテキスト「else」を使用しましたが、機能しませんでした。

出来ますか?また、同じ置換結果で 2 つの異なる検査を行う必要があります。複数の検索パターンを使用できますか?

更新

次のパターンを置き換えてみました

の中へ

しかし、置き換えた後、私は得ています:

「;」を削除することはできますか 置換結果から?

0 投票する
1 に答える
207 参照

java - IntelliJ 構造検索 : テストで Catch を試す

最近、Eclipse から IntelliJ Idea に切り替えましたが、この変更に非常に満足しています。しかし、独自の構造検索テンプレートを作成する方法がわかりません。

try ... catch ... finallyブロックを削除するために、ブロックを含むすべてのテスト メソッドを特定したいと考えています。テンプレートの置換は 2 番目の目標です。まず、それらを見つける方法を理解したいと思います。

既存の Idea テンプレートを使用して@Test、このテンプレートをわずかに変更して注釈が付けられたすべてのメソッドを見つけようとしました:

また、定義済みのテンプレートを使用してすべてのtry ... catchブロックを検索し、finally検出を追加しました。

しかし、ブロックを含むすべてのテスト メソッドを見つけるために、さらに進んでこれら 2 つのテンプレートを組み合わせる方法がわかりません。try ... catch ... finally

これで見つけたい「悪いテスト」と、構造テンプレートに一致しない「良いテスト」の例を次に示します。

手がかりを教えてもらえますか?

よろしくお願いします、

ジュリアン。

0 投票する
2 に答える
2590 参照

java - IntelliJ 構造検索を使用して、フィールドとその式を新しいフィールドに置き換えます

Android用ButterKnifeを使いたいです。コードの他の場所にあるいくつかの式に基づいて、いくつかのフィールドに注釈を付ける必要があります。私はこのようなコードを持っています

これ欲しい

その結果、式がなくなり、古い式に基づいてフィールドに注釈が付けられます。

IntelliJ の構造置換でこの種の検索と置換を行うことは可能ですか? 関心のある行が隣接しておらず、構造的に異なる場所にある場合は、適切に処理されないようです。クラステンプレートに基づいて試してみて、 $Statement$ (0-無制限の出現) を使用しましたが、うまくいきませんでした。

正規表現を使用するのは実際には比較的簡単であり、IntelliJ 構造検索を使用してボールをプレーするよりもはるかに簡単であることに気付きましたが、自分のツールを学びたいので、これが可能かどうかを知りたいと思っています。