Skip to main content

コーディング体験を向上させるIntelliJプラグイン8選

Blog Design IntelliJ IDEA

2021年8月26日

0 分で読めます

多くの開発者にとって、優れたIDEはスイスアーミーナイフのようなものです。開発者に必要なさまざまな機能を1つのプログラムに統合したツールです。そのため、多くの開発者は用途ごとに複数のツールを開くのではなく、お気に入りのIDEを中心に作業します。

最近公開されたJVM Ecosystemレポート2021によると、Javaエコシステムで最も広く使われているIDEは、圧倒的にIntelliJ IDEAです。一方で、開発者の半数以上がローカル環境で複数のIDEを使用していることも示されています。そこで、ニーズに合った拡張機能やプラグインを追加して、使い勝手を高めてみるのもよいでしょう。この記事では、マーケットプレイスで無料提供されている、実用性の高いプラグインを8つご紹介します。コーディング体験の向上に役立つものばかりです。

IntelliJ IDEAの現行バージョンには、Maven、Gradle、Lombok、Dockerなど、多くのプラグインがあらかじめ同梱されています。JetBrainsは、特定の言語やフレームワーク向けのプラグインも数多く提供しています。これらのプラグインがIntelliJ IDEAとほぼ常にシームレスに連携するのは、その理由の1つです。この記事では、主にサードパーティ製の優れた追加プラグインに焦点を当て、日々の作業にさらなる便利さをもたらすものをご紹介します。

1. Maven Helper

Javaエコシステムでは、依存関係管理機能も備えたMavenが、今も最も広く使われているビルドシステムです。Vojtech Krassaが開発したMaven Helperプラグインを使うと、ツリービューなどで依存関係を簡単に確認したり、依存関係の競合を見つけたりできます。

Spring Boot、Lombok、強調表示されたSnakeYAMLの競合など、プロジェクトの依存関係ツリーを表示するIntelliJ IDEAのMaven依存関係アナライザー

さらに、Mavenのゴールをあらかじめ定義して組み合わせておけば、ボタンをクリックするだけ、またはコンテキストメニューから実行できます。プラグインのゴールも実行可能です。以下の例では、packageゴールを呼び出してテストをスキップするゴールを追加しました。

「package -DskipTests」がハイライトされた、ライフサイクルゴールを表示するIntelliJ IDEAのMavenメニュー

2. Rainbow Brackets

小さくシンプルで洗練されたプラグインで、作業がぐっと楽になります。Rainbow Bracketsは、括弧が入れ子になっているときに、括弧や丸括弧を異なる色で表示します。カーソルを合わせなくても、括弧で囲まれた文がどこで終わるのかを簡単に見分けられます。

Java、Scala、Clojure、Kotlin、Python、Haskell、Agda、Rust、JavaScript、TypeScript、Erlang、Go、Groovy、Ruby、Elixir、ObjectiveC、PHP、HTML、XML、SQL、Apex language、C#、Dart、Pug/Jade、Bash、Vue.jsなど、多くの言語に対応しています。

以下のJavaの例では、括弧が色分けされるため、String.format()を含む行が格段に読みやすくなっています。また、Clojureにも対応しているので、このプラグインがあれば、私たち一般人にもClojureの構文が読みやすくなるかもしれません。

ユーザーを検索し、書式設定されたユーザー名とコメントをHTMLリストに書き込むuserLinkサーブレットメソッドを表示した、ダークテーマのJavaコードエディター。

3. Presentation Assistant

私の仕事には、プレゼンテーションも含まれています。ライブコーディングを行う機会も多くあります。キーボードショートカットで関数を呼び出すたびに、Presentation Assistantプラグインが、使用した関数とキーの組み合わせをボタン上に表示してくれます。これなら、聴衆も操作を簡単に追いかけ、同じ手順を再現できます。

マウスで関数を呼び出した場合も、ショートカットキーを含むメッセージが表示されます。つまり、IntelliJの機能をマウスで呼び出すときにショートカットキーがあれば、そのキーの組み合わせをすぐに確認して覚えられます。

「⌘S(Windows/LinuxではCtrl+S)で全て保存」というキーボードショートカットを表示した緑色のオーバーレイ

4. RoboPOJOGenerator

アプリケーションをRESTエンドポイントに接続するのは、今ではよくある作業です。多くの場合、エンドポイントから返されるJSONを、アプリケーション内のオブジェクトに変換する必要があります。大量のJSONを手作業でオブジェクトに変換するのは、かなり大変です。そんなときに便利なのがRoboPOJOGeneratorプラグインです。JSONの出力をジェネレーターに貼り付け、必要に応じて使用するフレームワークを選ぶだけ。RoboPOJOGeneratorが、選択したフレームワークに合ったアノテーション付きのPOJO(Plain Old Java Objects)をJavaやKotlin向けに生成してくれます。時間の節約にとても役立つプラグインです。

JSONの脆弱性データ、選択されたJava、フレームワークのオプション、コード生成の設定が表示されたRoboPOJOGeneratorのインターフェース

5. Snyk Vulnerability Scanner

Snyk Vulnerabilty Scannerプラグインは、Javaアプリケーションをより安全に開発するのに役立ちます。サードパーティの依存関係に含まれる既知のセキュリティ問題だけでなく、独自のコードもスキャンできます。

オープンソースの依存関係に脆弱性が見つかった場合、脆弱性を含まないパッケージへの修正方法を提案します。脆弱なパッケージが推移的依存関係の場合は、更新が必要な最上位のバージョンを知らせます。脆弱性を修正した最上位の依存関係がない場合は、どの推移的依存関係のどのバージョンでセキュリティ問題を解決できるかを提示します。

独自のコードについては、Snyk Vulnerabilty ScannerがSQLインジェクション、クロスサイトスクリプティング(XSS)、パストラバーサルなど、脆弱性につながるコードの書き方を検出します。コード内の該当箇所や脆弱性につながるフローを示し、オープンソースコードから得られた安全なコードへの修正案を提示します。コードのスペルチェッカーのように、セキュリティ上のミスを未然に防いでくれます。

このプラグインの詳細は、ブログ記事をご覧ください:IntelliJ IDEAでコーディングしながらJavaのセキュリティ問題を修正する方法

HTML入力のエスケープによるコード修正、データフローの詳細、クロスサイトスクリプティング(XSS)の脆弱性を表示するIntelliJのセキュリティスキャナー

6. AsciiDoc

私はAsciiDocが大好きです。Markdownによく似ていますが、多くの人にとって柔軟性の高いテキスト形式です。AsciiDocはPDF、EPUB、HTMLなど、さまざまな形式に変換できます。

AsciiDocプラグインを使うと、エディターでAsciiDocファイルを簡単に作成・編集し、プレビューできます。たとえば、コードのドキュメント作成に使っています。ウェブページとしてHTMLに出力できるほか、PDFのほうがよいという人のためにPDFにも出力できます。

IDE内でこうした作業ができるのは非常に便利です。ダウンロード数は210万を超えており、IntelliJ IDEAのこの優れた拡張機能を評価しているのは私だけではありません。

7. Randomness

Randomnessプラグインは、小さくて便利なツールです。初めて見たときは、「面白そうだけど、実際どれくらい使うだろう?」と思いました。ところが、第一印象から想像していたよりずっと頻繁に使っています。このツールでは、数値、文字列、実際の単語、UUIDなどのランダムデータを生成できます。型を指定して配列を作ることもできます。

デモを行う機会が多い私にとって、キーボードショートカットでランダムデータやデータの集合を作れるのはとても便利です。ユニットテストでも、ランダムなテストデータの生成に使っています。出力は細かく設定できるので、自分のニーズに合わせて調整できます。

設定できる項目には、配列のサイズ、ランダムな文字列に使う文字セット、単語の長さなどがあります。私が変更したのは、配列の出力から[]を外し、中身だけを表示するようにしたことくらいです。こうすれば、以下のようにJavaのListメソッドを使って簡単にList.of()を作成できます。

@Testアノテーションが付いたmyTestという名前の空のJava JUnitテストメソッドを表示する、ダークテーマのコードエディター

8. SonarLint

SonarLintプラグインは、コード品質の確保に役立ちます。コードの不審な点、好ましくないパターン、潜在的なバグを見つけるのに役立ちます。デフォルトでは、PMD、findbugs、checkstyleのルールをおおまかに統合した静的ルールが使われます。このプラグインの便利な点は、問題をその場で表示し、IntelliJのGit機能とも連携することです。コードをコミットする前に、問題があれば警告してくれます。

sonarQubeまたはsonarCloudを使っている場合は、ローカルのsonarLintと同期して、コードを同じルールセットでチェックできます。もちろん、単独で使っても、あらゆる開発者にとって役立つツールです。

IntelliJのSonarLintパネル。Javaファイルで見つかった3件の問題と、try-with-resourcesへの変更提案を表示

先ほど、Snyk Vulnerability Scannerについても触れました。sonarLintと比べても、機能が重複しているとは思いません。SonarLintもセキュリティに関連する問題を見つけることはありますが、それが主な目的ではなく、この点ではSnykのほうが優れています。一方、さまざまな潜在的バグやスタイル上の問題を見つける能力は、現時点ではSonarLintがSnykプラグインを大きく上回っています。私は両方のプラグインを同時に使っていますが、それぞれが互いを補い合っていると感じます。

CTFを始めよう

オンデマンドのバーチャル入門ワークショップで、CTFチャレンジの解き方を学びましょう。

続きを読む

Blog

フロンティアモデルは脆弱性を発見した。攻撃者だけがエクスプロイトチェーンを見つけた。

静的解析で欠陥は見つかりましたが、ライブ攻撃テストで侵害につながる連鎖を実証できたのは唯一でした。Evo COS、Claude Security、Claude Code Securityを比較します。

feature insights context
Blog

自律型攻撃はすでに始まっている。防御もそのスピードに追いつかなければならない。

自律型攻撃者によって、防御に使える時間は短くなっています。継続的な検出、修復、検証、予防で、セキュリティチームが攻撃に歩調を合わせる方法をご紹介します。

Blog

AIコーディングエージェントが不適切なアクセス制御を繰り返し実装する理由

AIコーディングエージェントは、コンパイルが通りレビューも通過する一方で、あるテナントのデータを別のテナントに公開してしまう認可ロジックを生成することがあります。不適切なアクセス制御が検出しにくい理由と、その防止策をご紹介します。