リライトアクションを使用してアノテーションにパラメータを追加

このブログ記事では、次のことを行います。
- 注釈の検索と照合のデモンストレーション
- 口ひげテンプレートを使ったアーメン注釈
Senseiは、問題のあるコードパターンを照合し、合意された実装に合わせて修正する機能を提供します。この例では、問題のあるコードパターンとしてパラメーターなしの @Disabled を使用しています。
無効化されたテスト注釈
特定の理由なしにテストを無効にすると、無効にした理由を忘れてしまうため、長期的には問題になる可能性があります。
@Disabled
void このテストメソッドには無効な理由がありません () {
Assertions.fail (「このテストは無効になっているため、実行すべきではありません」);
}
リスクは、時間が経つにつれてコードベースが移動し、無効になったテストがコードの目的に沿って更新されず、最終的には冗長で無関係になり、二度と有効にならない可能性があることです。
コードレビューでは、注釈パラメータとして説明的な説明を追加するのが良いとよく指摘されます。
@Disabled (「理由を追加したことを示すために無効にされました」)
void このテストメソッドは無効になっています。Reason () {
Assertions.fail (「このテストは無効になっているため、実行すべきではありません」);
}
先生のレシピ
@Disabled が説明なしに追加されたことを検出するレシピと、それを無効にした理由を説明する実際の理由を追加することを思い出させるクイックフィックスを書くことができます。
これから何をするかを考えるとき、私は次のことをしなければなりません。
- パラメータなしで Disabled アノテーションと一致させる
- Disabled アノテーションを変更して、「TODO: ここに説明を追加」というマーカーテキストの付いたパラメーターが含まれるようにします
警告レシピの作成
Alt+Enterを使用して新しいレシピを作成します。

次に、一般情報に基本的な説明文を追加します。

ルールを警告にすると、一致するコードはすべて強調表示されますが、目立つエラーとしては表示されません。

注釈を探す
レシピエディターで、注釈と一致するように検索を変更します。
これにより、プレビュー内のすべての注釈が強調表示されます。

それが済んだら、アノテーションのタイプでフィルタリングしたいと思います。
Disabledを使うこともできますが、JUnit 5のアノテーションとしか一致しないように、クラスをパッケージで完全に修飾します。ソースコードはプレビューに表示されているので、これを実際のコードから簡単にコピーして貼り付けることができ、タイプミスを防ぐことができます。
次に、パラメータなしで注釈だけを一致させたいのですが、GUIを使用してそれを行うことができます。

すなわち、検索:
検索:
注釈:
タイプ:「org.junit.jupiter.api.disabled」
なし:
パラメーター:
-{}
書き換えクイックフィックスアクションの作成
クイックフィックスでは、リライトアクションを使用します。
私は使う 変数を表示 Mustache 変数を表示して内容をプレビューする機能。

次に、プレースマーカーのコメントを作成するのに必要なコードを追加します。

すなわち、クイックフィックス:
利用可能な修正:
-名前:「Todo コメントパラメータを追加」
アクション:
-書き換え:
宛先:「{{{.}}} (\" TODO: ここに説明を追加\」)」
ターゲット:「自己」
センセイ・イン・アクション
実際のレシピ作成プロセスを紹介する短いビデオを作成しました。
サマリー
書き換えクイックフィックスを作成する場合、書き換えたいコード要素を検索できると簡単になります。なぜなら、それがアクションの対象となるセルフエンティティになるからです。
この例では、書き換えアクションを使用して注釈を修正しました。リライトは、どのコード要素にも適用できる汎用アクションで、デフォルトとして検討するとよいでしょう。
Govern AI-driven development before it ships
Measure AI-assisted risk, enforce secure coding policy at commit, and accelerate secure delivery across your SDLC.
Explore more blogs
これは、オーラが射手と鼻の穴を広げることによって、腸管を熱的に発芽させ、臭いを帯びていることを防ぐためのものです。
%252520%252520(3).avif)
Supercharged Security Awareness: How Tournaments are Inspiring Developers at Erste Group
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

Security as culture: How Blue Prism cultivates world-class secure developers
Learn how Blue Prism, the global leader in intelligent automation for the enterprise, used Secure Code Warrior's agile learning platform to create a security-first culture with their developers, achieve their business goals, and ship secure code at speed

One Culture of Security: How Sage built their security champions program with agile secure code learning
Discover how Sage enhanced security with a flexible, relationship-focused approach, creating 200+ security champions and achieving measurable risk reduction.
Secure AI-driven development before it ships
See developer risk, enforce policy, and prevent vulnerabilities across your software development lifecycle.


