Quarkus Tools for IntelliJの最新改良点のまとめ
Quarkus Tools for IntelliJ は、無料でオープンソースのエクステンションです。コンテンツアシスト、検証、実行設定、その他多くの機能をお気に入りのIDEから利用でき、Quarkusアプリケーションの開発を支援します。
This extension is based on the LSP4MP (i.e. MicroProfile) and its Quarkus add-on, and the Qute language server. These are all used in our popular Quarkus Tools extension for Visual Studio Code.
この5ヶ月間、私たちはQuarkus Toolsを可能な限り改善するため、平均して2週間に1つのペースでリリースを行うなど、 本当に 懸命に取り組んできました。
パフォーマンスの改善、Quarkus 3.xのJakartaEEネームスペースのサポート、Quteテンプレートのサポート、そして一般的にQuarkus Toolsを邪魔しないようにすることに注力してきました。では、何が達成されたのかを詳しく見ていきましょう。
安定性とパフォーマンスの向上
カスタムLanguage Serverクライアント(LSP4IJ)の様々な重大な問題に対処しました。改善点は以下のとおりです:
-
言語サーバーを起動する前に、インデックス作成が終了するまで待つ。
-
言語サーバーのリクエストがエディタをブロックしなくなりました。
-
一部のリクエストをデバウンスし、重い処理を最小限に抑える
-
不必要な処理を避けるための新しいリクエスト・キャンセル・サポート。
-
検証の高速化とクイックフィックスの遅延ロード。
-
クアルカスの特性を補完するペイロードサイズを縮小。
-
QuarkusプロジェクトウィザードでQuarkusデータを事前に取得することで、
Next
ボタンをクリックした後の待ち時間を回避できます。
これらの修正は、よりスムーズなコーディング体験、全体的なパフォーマンスの向上、そしてあえて言うなら「開発者の喜び」に貢献する。
言語サーバー・クライアントの改善
言語サーバー・コンソール
ほとんどの場合、ユーザーには直接役立ちませんが、新しい言語サーバーのコンソールビューは、言語サーバーの問題をトラブルシューティングする必要がある場合に非常に重要です。
サーバーの状態を見ることができ、右クリックで停止と再起動が可能で、さまざまなレベルのトレースを有効にすることができる:
IDEと言語サーバー間の通信の詳細は、"LSP consoles "ペインで確認できます。 verbose
モードでは、メッセージを拡大して詳細を見ることができます:
この機能は、エクステンションのパフォーマンス上の問題を診断する上で非常に有用であることが証明されています。問題が発生した場合に備えて、ユーザーは貴重なトラブルシューティング情報を提供できるようになります。
アプリケーション・プロパティのサポート
キュート改善
我々は、最高のQuteサポートを提供するために多大な努力を払ってきた。
新しい構文のカラーリング
Quteパーサーは、適切な構文の色分けができるように書き直されました:
カラーリングの設定は Preferences | Editor | Color Scheme | Qute
。
完成の再現
新しい括弧の自動クローズ、HTMLとの統合の改善、新しい補完アイコンなど、Quteテンプレートの編集がこれまで以上に改善されました。特に、強化されたスニペット補完は、IntelliJのライブテンプレートのように動作し、異なるQuteセクションで利用できます:
Section {#}
completion now displays user tags contributed by dependencies, like Renarde or Web Bundler:
insert}と{#include}のサポートの改善
{#insert}
、 {#include}
セクションを使用して、現在のテンプレートに含める拡張テンプレートを指定することができます。このリリースでは、バリデーション、ドキュメントリンク、補完、コードレンズでこれらのセクションのサポートを拡張しています。
テンプレート/コード間のナビゲーション
You can navigate by Ctrl+click
(Cmd+click
on Mac), from one template to another (referenced as user tags, via {#include}
or {#insert}
), or from a template definition from a java file to the actual file:
新しいテンプレート・フラグメントのサポート
Fragment sections define a part of the template that can be treated and rendered as a separate template. Support for fragments includes snippet completion, hover and validation.
In a java class, you can navigate to a referenced #fragment
via code lens and document link
レナルデ・サポート
Quarkus Toolsが Renarde ウェブフレームワークをサポートするようになりました:
-
Public methods of sub-classes of a Renarde
Controller
automatically show a clickable codelens, even though they’re lacking a HTTP method annotation, as they’re treated as valid JAX-RS endpoints: -
Completion on the Renarde
uri
anduriabs
namespaces lists available Renarde controllers: -
Quick-fix is available to add missing input fields to a
{#form}
section:
バリデーション
Java files
バリデーションは以下の機能で強化された:
-
GraphQL
void
operations are now allowed in Quarkus 3.1 and higher and the correct placement of GraphQL directives is now checked: -
Quarkus
BuildItem
subclasses are checked whether they’refinal
orabstract
:
重症度マッピング
言語サーバーから報告されるMicroprofileとQuteの診断のいくつかを、IntelliJの検査設定にバインドしようとしました。しかし、これはちょっとしたハックなので、いくつかの重大度設定を除いて、検査設定はほとんど無視されます。制限事項については、各検査の説明に記載されています:
ほとんどの場合だ:
-
スコープ:値は無視される
-
Severity: Errorと(弱い)Warningのみが尊重される。それ以外の値ではエラーは報告されません。
-
エディタでのハイライト:値が無視される
設定を更新するクイックフィックス
特定のエラーに対する検証を無効にするクイックフィックスを導入しました。例えば、偽陽性のエラーによって開発ワークフローにノイズが多すぎる場合に便利です。
javaファイル中の未割り当ての @ConfigProperty
プロパティ(すなわち、 application.properties
で宣言されていない)、または application.properties
で宣言された未知のプロパティ(未使用と思われる)を、クイックフィックスによって検証から除外できるようになりました:
その後、 Preferences | Editor | Inspections | MicroProfile | Java files | Unassigned properties
または Preferences | Editor | Inspections | MicroProfile | Properties files | Unassigned properties
同様に、特定のQuteテンプレートを検証から除外したり、モジュール全体を除外したりすることもできます。
その後、 Preferences | Editor | Inspections | Qute | Templates | Validation
、
その他の改善
-
Quarkusのプロジェクトウィザードは、超スムーズであることに加え、拡張子をダブルクリックすることで簡単に(解除)選択できるようになりました。
-
WSL2のプロジェクトがサポートされました。
-
IntelliJ Ultimateに組み込まれたQuarkusサポートとの混同を避けるため、実行設定の名前が
Quarkus Dev Mode
に変更されました。 -
Vert.xリアクティブルート、JAX-RS、Renardeエンドポイントが暗黙的に使用されるようになり、Quarkus
@BuildStep
-注釈付きクラス、@Observer
-注釈付きメソッドも表示されるようになりました。
前を向いて
Quarkusの「開発者の喜び」というマントラは、IDEで過ごす時間にも明らかに当てはまります。過去5ヶ月間のリリースを振り返ると、IntelliJ IDEAでのQuarkus開発エクスペリエンスの進歩にとても興奮しています。
そして、我々はここで止まるつもりはないので、今後数週間のうちにさらなるパフォーマンス向上とエキサイティングな新機能にご期待ください。実は、EAPリリース・チャンネルにアップデートを公開することで、できるだけ早くこれらの新しいビットを入手しやすくする予定です。
最後に、まだの方は、 JetBrainsマーケットプレイスにレビューを追加して ください。あなたのフィードバックが重要です!
バグを見つけたり、素晴らしい新機能のアイデアがある場合は、遠慮なく Githubリポジトリ にアクセスしてチケットを開いてください。