PhpStorm 2023.2 の新機能

このメジャーアップデートのハイライトには以下が含まれています。

  • PHP のジェネリクス対応の改善
  • Laravel Pint のサポート
  • PHP アサーションのネイティブサポート
  • AI Assistant(限定アクセス)
  • GitLab 統合
  • Search Everywhere(どこでも検索)でのテキスト検索

AI Assistant 限定アクセス

このバージョンの大きな追加機能は AI Assistant です。AI 機能を使用してコーディング力を高めるように設計されています。 初期の機能セットではすでに AI Assistant とのチャットが可能となっており、ドキュメントコメントの自動記述、名前の提案、コミットメッセージの生成などの処理を任せることができます。

AI チャット

AI チャット

AI Assistant ツールウィンドウを使用して LLM(大規模言語モデル)と対話し、質問したりコーディング支援を受けたりできます。 PhpStorm がプロジェクトで使用される PHP 言語レベルやフレームワークなど、プロジェクト固有のコンテキストを提供します。 AI が生成したコードに満足したら、Insert Snippet at Caret(キャレット位置にスニペットを挿入)をクリックしてコードをエディターに貼り付けるか、上書きコピーすることができます。

AI Actions(AI アクション)

AI Actions(AI アクション)

Alt+Enter コンテキストメニューに AI Actions が追加されました。このアクションには AI Assistant が支援できる多数のタスクが含まれています。

コードのドキュメント生成

コードのドキュメント生成

AI Assistant はユーザーに代わってドキュメントを生成することも可能です。 Alt+Enter を押して AI Actions を選択し、Write Documentation(ドキュメントの作成)を選択します。 AI Assistant はチャットを通じてコードの説明も行ってくれます。

コミットメッセージの生成

コミットメッセージの生成

コミットメッセージダイアログに Generate Commit Message with AI Assistant(AI アシスタントでコミットメッセージを生成)ボタンが追加されました。 このボタンをクリックすると LLM に変更の差分が送信され、変更内容を説明するコミットメッセージが生成されます。

アクセス方法

アクセス方法

AI Assistant は JetBrains AI サービスを使用しています。 AI 機能にアクセスするには、AI Assistant プラグインを手動でインストールし、JetBrains Account を使って JetBrains AI サービスにログインする必要があります。 ツールバーの More tool windows(その他のツールウィンドウ)アイコンをクリックして AI Assistant を選択し、プロンプトに従うのが最も簡単です。

また、現時点では AI Assistant へのアクセスが順番待ちリストによって制限されている場合がありますのでご注意ください。 AI Assistant の仕組みや JetBrains によるユーザーのコードとデータの処理方法に関する詳細は、こちらのブログ記事をご覧ください。

これらの新しい AI 機能をぜひお試しになり、アイデアや提案をお送りください。 AI Assistant ツールウィンドウの Share your feedback(フィードバックを送信)をクリックすると送信できます。 また、AI Assistant のバグ報告を YouTrack で受け付けています。

PHP

PHP のジェネリクス

新しい Rename generic(ジェネリクスの名前変更)リファクタリング

新しい Rename generic(ジェネリクスの名前変更)リファクタリング

ジェネリクス型で Shift+F6 を押して名前変更を開始すると、PhpStorm が自動的にコードベース全体にわたってその名前を更新します。

Ctrl+T を押して Rename(名前の変更)を選択しても同じことを行えます。

ジェネリクスでの `static` 型のサポート

ジェネリクスでの static 型のサポート

ジェネリクステンプレートでの静的参照のサポートは、この分野で最も期待度の高かった機能の 1 つです。

このリリースではその機能がついに実装されましたが、今後も PHP のジェネリクスのサポートを可能な限り最高なものにするための努力を続ける予定です。

テンプレートでの @mixin のサポート

テンプレートでの @mixin のサポート

ジェネリクスの @mixin アノテーションを使うと、ビヘイビアをオブジェクトに注入するためのデコレーターやその他のパターンのメリットをフルに生かせます。 PhpStorm が可能な場合にこれらに対応するコード補完を提供するようになりました。

冗長な PHPDocs 生成の削除

冗長な PHPDocs 生成の削除

PhpStorm が多数のアクションで自動生成された PHPDoc ブロックから冗長な宣言を削除し、ドキュメントコメント内の特定の冗長な PHPDoc タグについて報告するようになりました。

生成された getter と setter に対し、PhpStorm が宣言されている型がない場合にのみ PHPDocs コメントを追加するようになりました。

getter および setter メソッドの生成を呼び出すには、Add getter/setter(getter/setter の追加)インテンションアクション(Alt+Enter)か Generate code(コードの生成)アクション(Alt+Insert)を使用します。

Laravel Pint のビルトインサポート

Laravel Pint のビルトインサポート

PhpStorm has added Laravel Pint to the list of supported quality tools. Laravel Pint が報告するコードスタイルの問題を PhpStorm 独自のコードインスペクションのように処理できるようになります。

Laravel Pint との統合を構成するには、Settings(設定)| PHP | Quality Tools(品質ツール)に移動して Laravel Pint を展開します。

ここでは、Larabel Pint を外部フォーマッターとして設定することもできます。 その場合は Laravel Pint が検出するすべての問題を Reformat Code(コードの整形)(Ctrl+Alt+L)を使ってまとめて修正できるようになります。

Laravel Pint を PhpStorm のインスペクションとして有効にするには、Settings(設定)| Editor(エディター)| Inspections(インスペクション)に移動し、PHP | Quality Tools(品質ツール)にある Laravel Pint validation(Laravel Pint の検証)をオンにします。

このインスペクションが有効な場合、Laravel Pint が検出した問題は任意の開いている PHP ファイルでハイライトされるか、Problems(問題)ツールウィンドウに報告されます。

PHP アサーションのインスペクション

PHP アサーションのインスペクション

このリリースでは、コードインサイトのロジックを PHP アサーションにまで拡張しました。

PhpStorm が常に true か false である冗長なアサーションを検出してハイライトするようになりました。 This is available for PHP’s built-in assert() constructs, PHPUnit’s assertion methods, and methods from the webmozart/assert and beberlei/assert libraries.

ユーザーエクスペリエンス

新しい UI に色付きのプロジェクトヘッダーを導入

新しい UI に色付きのプロジェクトヘッダーを導入

プロジェクトごとに固有の色とアイコンを割り当てることができるため、ワークスペース内のプロジェクトがより区別しやすくなりました。

ヘッダーには定義済みの色がデフォルトで適用されていますが、この色をカスタマイズできるようになりました。ヘッダーを右クリックして Change Toolbar Color(ツールバーの色を変更)オプションを選択すると、希望する色を選択できます。

Search Everywhere(どこでも検索)のテキスト検索

Search Everywhere(どこでも検索)のテキスト検索

Search Everywhere(どこでも検索)(Double Shift)はファイル、クラス、メソッド、アクション、および設定の検索に使用されます。

この機能に Find in Files(ファイル内検索)と同様にテキスト検索機能が追加されました。 ある特定のクエリに対する検索結果がほとんどない場合にテキスト検索の結果が表示されるようになっています。

メインツールバーのカスタマイズを改善

メインツールバーのカスタマイズを改善

新しい UI ではドロップダウンメニューを使用して必要なアクションを素早く選択し、このツールバーに追加できるようになっています。

任意のウィジェットで右クリックして Add to Main Toolbar(メインツールバーに追加)を選択し、使用できるオプションを参照してください。

メインツールバーのハンバーガーメニューを改善(Windows および Linux)

メインツールバーのハンバーガーメニューを改善(Windows および Linux)

Windows および Linux のメインツールバーにある新しい UI のハンバーガーメニューの動作を改良しました。 メニューアイコンをクリックすると、その構成要素がツールバー上で横方向に表示されるようになっています。

また、このメニューをツールバーとして分離させるオプションも備わっています。 これを行うには、View(表示)| Appearance(外観)| Main menu as a Separate Toolbar(メインメニューをツールバーとして分離する)に移動します。

新しい UI の Light theme with Light Header(ライトヘッダーを使ったライトテーマ)

新しい UI の Light theme with Light Header(ライトヘッダーを使ったライトテーマ)

代替の Light with Light Header(ライトヘッダーを使ったライト)テーマを導入しました。これにより、ウィンドウのヘッダー、ツールチップ、および通知バルーンで対応するライトカラーが使用されます。

実行構成のピン留め

実行構成のピン留め

Pinned(ピン留め)セクションに実行構成を追加するには、名前の横にあるケバブメニュー(三点リーダー)を開いて Pin(ピン留め)を選択します。 必要に応じてピン留めされた複数の構成の順序をドラッグアンドドロップで簡単に変更できます。

Project(プロジェクト)ビューでの変更日時によるファイルの並べ替え

Project(プロジェクト)ビューでの変更日時によるファイルの並べ替え

Project(プロジェクト)ビューのファイルを変更日時に基づいて並べ替えられるようになりました。 この機能を有効にするには Project(プロジェクト)ビューのケバブメニュー(三点リーダー)を開き、Tree Appearance(ツリーの外観)| Sort by Modification Time(変更日時で並べ替え)を選択します。

HTTP クライアントの改善

OpenAPI および Swagger ファイルの Redoc UI プレビュー

OpenAPI および Swagger ファイルの Redoc UI プレビュー

Redoc と Swagger の UI を切り替えて OpenAPI ドキュメントをプレビューできるようになりました。

Redoc を統合することで、PhpStorom 内から Try it コンソールにアクセスし、それを使用してパラメーターの設定や API へのリクエストの送信を行えます。

HTTP クライアント CLI での GraphQL と WebSocket のサポート

HTTP クライアント CLI での GraphQL と WebSocket のサポート

専用の HTTP クライアント CLI を使って .http ファイルをリクエストとして実行できます。

このリリースより、このツールで GraphQL API を操作してサービスとの WebSocket 接続を確立できるようになりました。

HTTP クライアントでの JavaScript インポートのサポート

HTTP クライアントでの JavaScript インポートのサポート

インポートされたモジュールを使用して HTTP クライアントのリクエストハンドラーの共通 JavaScript コードを共有できるようになっています。

VCS / Git / GitLab

GitLab の Merge Requests(マージリクエスト)のサポート

GitLab の Merge Requests(マージリクエスト)のサポート

PhpStorm 2023.2 では GitLab との統合機能が初めて導入され、IDE から Merge Requests(マージリクエスト)を直接操作できるようになりました。

行単位の変更のコミット

行単位の変更のコミット

PhpStorm にコードチャンクの特定の変更行のみを選択的にコミットできる新しいレベルのコミット設定が導入されました。

ファイル差分を開き、編集したチャンク内の行を選択してコンテキストメニューから Include these lines into commit(これらの行をコミットに含める)を呼び出します。 各行にチェックボックスが表示されるため、選択するか未選択のままにすることができます。

プラグイン開発者向けの LSP サポート

一部の言語とテクノロジーは PhpStorm で(まだ)ネイティブにサポートされていなくても、サポートを提供できる言語サーバーが存在する場合があります。 このため、プラグイン開発者が LSP API を使用して特定の LSP サーバーを統合できるようにしました。

独自のプログラミング言語やフレームワークを作成している場合、LSP サーバーとプラグインを記述すれば、それを IDE でサポートすることができます。

現在、この LSP サポートにはエラーと警告のハイライト、クイックフィックス、コード補完、および宣言への移動が含まれます。

JetBrains Qodana のバンドル化

PhpStorm 2023.2 にはあらゆる CI/CD パイプラインに適合するように設計された当社のスマートな静的解析エンジンであるコード品質プラットフォーム、Qodana が統合されています。

たった数回のクリックで解析をトリガーしたり、プロジェクト全体の問題のリストを表示したり、お好みの CI/CD システムで Qodana を構成してクオリティゲートを確立したりできます。

また、Qodana が CI/CD システムで構成されると、IDE を離れなくてもサーバーサイド解析の結果を表示できるようになります。細かい設定は必要ありません。

ウェブ開発

JavaScript と TypeScript のエラー書式を改善

JavaScript と TypeScript のエラー書式を改善

JavaScript と TypeScript のエラーと警告がより可読性に優れた書式になり、コード内の問題を発見しやすくなります。

CSS のネストをサポート

CSS のネストをサポート

We’ve implemented syntax support and an inspection that alerts you if a CSS nested selector starts with an identifier or functional notation.

Vue Language Server のサポート

Vue Language Server のサポート

Vue Language Server(VLS)、別名 Volar をサポートすることで、より正確なエラー検出とより適切な型情報の提供をクイックナビゲーションとドキュメントポップアップで実現しています。 デフォルトでは、TypeScript v5.0 以降に VLS が使用されます。 Settings(設定)| Languages & Frameworks(言語とフレームワーク)| TypeScript | Vue では Vue サービスがすべての TypeScript バージョンで VLS 統合を使用するように設定できます。