GoLand 2023.2 では Go モジュールとの統合の改善、関数パラメーターとメソッドレシーバー間での双方向の移行リファクタリング、および errors.Is と errors.As のサポートが導入されています。
このバージョンには新しい AI Assistant プラグイン、GitLab の統合機能、および Kafka プラグインも含まれています。
また、Docker の統合と Kubernetes プラグイン関連の改善も導入されています。
対話的に学習したい方は、「Welcome」(ようこそ)画面からアクセスできる「What's New in GoLand 2023.2」(GoLand 2023.1 の新機能)チュートリアルをご利用ください。
プロジェクトを開いたときと go.mod ファイルに変更が適用されるたびに Go モジュールを自動的にダウンロードする機能を導入しました。この機能はデフォルトで有効になっていますが、いつでも Settings(設定)| Go | Go Modules(Go モジュール)からオフにすることができます。
go.mod の依存関係を更新するインテンションアクション go.mod ファイルの依存関係をより迅速に更新できるよう、複数のインテンションアクションとインスペクションを追加しました。
go.mod ファイルを開くと、GoLand で古くなった依存関係がハイライトされるようになっています。そのパッケージのハイライトされているバージョンにマウスポインターを合わせると、クイックフィックスを使って更新することができます。また、すべての依存関係を最新のパッチかメジャーバージョンに更新することも可能で、直接の依存関係のみを更新するオプションもあります。
別の言語で使用されているベンダーフォルダーを含むモノリポがある場合などにベンダリングをプロジェクトごとに無効にできるようになりました。ベンダリングは新規プロジェクトを作成する際や他のタイミングで、Settings(設定)| Go | Go Modules(Go モジュール)に移動して無効にできます。
GoLand に Migrate function parameter to method receiver(関数パラメーターをメソッドレシーバーに移行する)と Migrate method receiver to function parameter(メソッドレシーバーを関数パラメーターに移行する)の 2 つの新しいリファクタリングが導入されました。
Migrate function parameter to method receiver(関数パラメーターをメソッドレシーバーに移行する)リファクタリングは関数を型のメソッドに変換できます。 Migrate method receiver to function parameter(メソッドレシーバーを関数パラメーターに移行する)は逆の変換を行うもので、型のメソッドを関数に変換します。
errors.Is と errors.As のサポート errors.Is または errors.As を使用すべきケースをハイライトする 2 つのインスペクションを導入しました。既存のコードを errors.Is または errors.As を使用するようにリファクタリングできるクイックフィックスもあります。
1 つ目のインスペクションはエラーの直接比較をハイライトするものです。 Go 1.13 以降ではエラーを %w 動詞を使用する fmt.Errorf 関数でラップ可能で、等値チェックを使用するエラーの直接比較はラップされたエラーで失敗する可能性があります。
特定のエラーをチェックするには、標準ライブラリの errors.Is 関数を使用するのが望ましいです。 GoLand に直接のエラー比較を errors.Is の使用に変換することを提案するクイックフィックスが導入されています。
2 つ目のインスペクションは、err.(*MyErr) または switch err.(type) などのエラーに対する型アサーションと型スイッチをハイライトします。これらもラップされたエラーで失敗する可能性があるためです。
Go 1.13 以降では、errors.As を使用するのが望ましいです。新しいクイックフィックスは、エラーに対する型アサーションと型スイッチを errors.As の使用に変換するように提案します。
min、max、および clear のサポートmin、max、および clear という Go 1.21 で導入された新しい関数の基本サポートが備わっています。 make の改善
make 関数引数の補完 make 関数の呼び出しに対応した型認識コード補完を追加しました。
make 関数引数のチェック GoLand が make 関数のエラーと冗長な引数を検出できるようになりました。冗長な引数を除去するクイックフィックスもあり、通常どおり Alt+Enter からアクセスできます。
メソッドを型に対して直接呼び出す場合、最初の引数にはレシーバー型を指定する必要があります。このような場合に GoLand がレシーバーを補完候補の最初のパラメーターとして表示するようになりました。
型のインスタンス化で型引数が欠落している場合のエラーメッセージが間違いの内容を明示的に示すようになりました。
Wrap error handling in a closure(クロージャでエラー処理をラップする)インテンションアクションのプレビューを追加しました。このプレビュー機能はインテンションアクションのリストが開いている間に Ctrl+Q を押すと無効にでき、同じショートカットを使って有効にされるまでは無効のままになります。
for ループの冗長な条件に関する警告 GoLand が for ループに冗長な条件が含まれることを示す警告メッセージを表示するようになりました。冗長な条件を除去するクイックフィックスも用意されています。
このリリースでは、GoLand への大きな追加機能となる AI Assistant が導入されました。現在、AI Assistant は組み込みの AI チャットを初期の AI 駆動型機能一式と共に提供しており、ドキュメントコメントの自動記述、名前の提案、コミットメッセージの生成などを実行できます。
AI Assistant は JetBrains AI サービスによって提供されており、現時点では OpenAI に接続できるようになっています。将来的には他の言語モデルプロバイダーも対応の予定です。アシスタントの AI 機能にアクセスするには、JetBrains AI プラグインをインストールし、JetBrains Account を使って JetBrains AI サービスにログインする必要があります。最初の段階で JetBrains AI サービスを利用できるかどうかは人によって異なる可能性があります。 AI アシスタントに関する詳細およびアクセス方法の指示については、このページを参照してください。
Services(サービス)ツールウィンドウで Docker イメージレイヤーのコンテンツに簡単にアクセスしてプレビューできるようになりました。リストからイメージを選択して Show layers(レイヤーの表示)を選択し、Analyze image for more information(イメージを解析して詳細を得る)をクリックします。すると、レイヤーに格納されたファイルのリストが開きます。このリストにあるファイルを右クリックして Open File(ファイルを開く)(バイナリの場合は Download File(ファイルのダウンロード))をクリックすると、選択したファイルを簡単にエディターで開けます。
Docker の実行構成を Before Launch(起動前)タスクに指定することで、他の構成より前に実行するように設定できるようになりました。 IDE はその時点で稼働中のコンテナーが健全な状態になるのを待ってから次の実行構成を起動します。キューをセットアップするには、必要な Docker 実行構成を作成してから、Modify options(オプションの変更)| Add before launch task(起動前タスクの追加)| Run configuration(実行構成)でその構成をコンテナーに追加します。
複数の kuberconfig ファイルを単一のプロジェクト内でセットアップできる新機能を導入しました。これにより、同じプロジェクト内で複数のクラスターを処理したり、別々のクラスターの環境を操作したりするのが簡単になります。ファイルをセットアップするには、File(ファイル)| Settings(設定)| Build, Execution, Deployment(ビルド、実行、デプロイ)| Kubernetes に移動します。
Services(サービス)ツールウィンドウで Kubernetes クラスターのデプロイログを表示できるようになりました。ツリーの Deployment(デプロイ)を右クリックし、コンテキストメニューの Follow Log(ログの追跡)または Download Log(ログのダウンロード)を選択します。
コードチャンクの特定部分を選択的にコミットできるようになりました。部分コミットを実行するには、チャンク内の必要な行を選択し、コンテキストメニューから Include these lines into commit(これらの行をコミットに含める)を呼び出します。このチャンクは選択した部分がハイライトされた状態で個別の行に分割されます。チェックボックスかコンテキストメニューを使用して選択範囲に行を追加するか除外するかを指定できます。
GoLand 2023.2 には開発ワークフローを合理化する GitLab との統合機能が導入されています。リクエストのリストの確認、変更内容の確認、コメントの書き込み、関連するビューへの移動など、IDE から直接マージリクエスト機能を操作できます。
新しい Kafka プラグインでは Kafka イベントストリーミングプロセスを監視できます。 Kafka クラスターへの接続、各種フォーマットでのメッセージの生成と消費、トピックの管理とコンシューマーグループの監視、および Confluent Schema Registry と AWS Glue Schema Registry の使用が可能です。このドキュメントページでさらに詳細を確認できます。
VS Code キーマップを使い慣れているユーザーが Welcome(ようこそ)画面の Customize(カスタマイズ)セクションでこのキーマップを選択できるようになりました。 Settings(設定)| Keymap(キーマップ)でキーマップを変更することもできます。
GoLand 2023.2 には Project(プロジェクト)ビューのファイルを変更日時に基づいて並べ替える待望のオプションが導入されています。この新機能により、プロジェクトの変更が保存されるたびにファイルが自動的に並べ替えられるようになります。この機能を有効にするには Project(プロジェクト)ビューのケバブメニュー(縦三点リーダー)を開き、Tree Appearance(ツリーの外観)| Sort by Modification Time(変更日時で並べ替え)を選択します。
複数の実行構成を管理しやすくするため、Run(実行)ウィジェットにお好みの構成をピン留めできるオプションを実装しました。 Pinned(ピン留め)セクションに実行構成を追加するには、名前の横にあるケバブメニュー(縦三点リーダー)を開いて Pin(ピン留め)を選択します。ピン留めされた構成が複数ある場合はドラッグアンドドロップ操作でリスト内の構成の位置を簡単に調整できます。
新しい UI のメインツールバーのカスタマイズオプションを拡張しました。ドロップダウンメニューを使用して必要なアクションを素早く選択し、このツールバーに追加できるようになっています。これを行うには任意のウィジェットで右クリックして Add to Main Toolbar(メインツールバーに追加)を選択し、使用できるオプションを参照します。
Windows および Linux のメインツールバーにある新しい UI のハンバーガーメニューの動作を改良しました。メニューアイコンをクリックすると、その構成要素がツールバー上で横方向に表示されるようになっています。また、View(表示)| Appearance(外観)| Main menu as a Separate Toolbar(メインメニューをツールバーとして分離する)にはこのメニューを独立したツールバーに変換するオプションもあります。
より迅速かつ応答性の高いプロジェクトフォルダーの展開と折りたたみを可能にする新しい Open Directories with Single Click(ワンクリックでディレクトリを開く)オプションが Project(プロジェクト)ビューに追加されています。このオプションはケバブ(縦三点リーダー)メニューをクリックして開くドロップダウンメニューにあります。
Search Everywhere(どこでも検索)(Double Shift)は主にファイル、メソッド、アクション、および設定の検索に使用されます。このアップデートでは、Find in Files(複数ファイル内検索)と同様のテキスト検索機能が追加されています。これにより、ある特定のクエリに対する検索結果がほとんどない場合にテキスト検索の結果が表示されるようになりました。この機能はデフォルトで有効になっており、Settings(設定) | Advanced Settings(高度な設定)で管理できます。
Settings(設定)| Editor(エディター)| Inspections(インスペクション)のコードサンプルで構文がハイライトされるようになりました。インスペクションのトリガー元を把握し、そのインスペクションを有効または無効にするかを決めやすくなっています。
IDE を特定のプロジェクトに合わせて構成し、その機能をプラグインで拡張しやすくするため、Settings(設定)| Plugins(プラグイン)セクションの UI を更新しました。プロジェクトの仕様に応じて自動的に決まる推奨プラグインのセットがリストの上部に表示されるようになっています。
GoLand 2023.2 では開いている複数のプロジェクト間を簡単に移動できるように色付きのプロジェクトヘッダーが導入されています。プロジェクトごとに固有の色とアイコンを割り当てることができるため、ワークスペース内のプロジェクトがより区別しやすくなりました。
ヘッダーには定義済みの色がデフォルトで適用されていますが、これはカスタマイズ可能です。プロジェクトに新しい色を設定するには、ヘッダーを右クリックしてコンテキストメニューを開きます。 Change Project Color(プロジェクトの色を変更)オプションを選択し、希望する色を選択します。この機能を無効にするには、コンテキストメニューの Show Project Gradient(プロジェクトのグラデーションを表示)オプションを選択解除します。
バージョン 2023.2 は代替の Light with Light Header(ライトヘッダーを使ったライト)テーマが導入されたため、ユーザーエクスペリエンスが向上しています。このテーマではウィンドウのヘッダー、ツールチップ、および通知バルーンで対応する明るい色が使用されます。
Services(サービス)ツールウィンドウ内の実行およびデバッグアクション用の UI を改良し、メインの Run/Debug(実行/デバッグ)ウィジェットと同様のツールバーの外観と使い心地を実現しました。
Linux ユーザーの利便性を考慮し、オペレーティングシステムのネイティブヘッダーが新しい UI から削除されました。その結果、よりすっきりとしたインターフェースになっています。デフォルトではカスタムの IDE ヘッダーが表示されるようになっていますが、ユーザーのワークスペースに合わせてカスタマイズできるオプションが豊富に提供されています。
HTTP クライアントが Swagger と OpenAPI の仕様を理解し、JSON リクエストに対応するコード補完オプションを提供できるようになりました。
インポートされたモジュールを使用して HTTP クライアントのリクエストハンドラーの共通 JavaScript コードを共有できるようになりました。
GoLand で HTTP クライアントのリクエスト結果に含まれる PDF ファイルと HTML ファイルのプレビューを直接表示できるようになりました。
HTTP クライアントでトランスポート層セキュリティプロトコル(TLS)を使用して gRPC リクエストを送信できるようになりました。 TLS は暗号化と認証の機能を提供し、データ送信の機密性と整合性を確保します。リクエストの構文では https:// と grpcs:// のどちらのスキーマもサポートされています。
GoLand 2023.2 では、エラーと警告がより可読性に優れた書式になり、コード内の問題を発見しやすくなります。この書式はすべての TypeScript エラーと一部のごく一般的な JavaScript エラーに適用されます。
GoLand で CSS のネストモジュール機能がサポートされるようになりました。構文のサポートに加えて、ネストされたセレクターが識別子や関数表記で開始しないようにするインスペクションが実装されています。
いわゆる「Norway problem」と言われる問題を解消し、YAML ファイルに含まれるブール値の意図しない解釈が起こるのを防ぐための新しいインスペクションが導入されました。
リストが主に文字列で構成されていてもブール型のようなリテラルを含んでいる場合、GoLand はそのリテラルをハイライトして潜在的な矛盾を示し、引用符を追加するように提案します。リストが主にブール値のようなリテラル(true、false、off、on、yes、no など)で構成されている場合、このパターンから外れるリテラルは潜在的なエラーとしてハイライトされます。ただし、このシナリオで提案される特定のクイックフィックスはありません。
IDE で Swagger Codegen 構成をセットアップする際のユーザーエクスペリエンスが改善されました。ユーザーの要件に合わせて実行構成をカスタマイズしやすくするため、Edit Swagger Codegen Configuration(Swagger Codegen 構成の編集)ダイアログが改良されています。
また、ガターから直接 Swagger Codegen の実行構成にアクセスできるようになったため、追加の設定を指定する必要がなくなりました。
GoLand が YAML ファイルや JSON ファイルを含む OpenAPI および Swaggeer 仕様ファイルの Redoc UI プレビューをサポートするようになり、Redoc と Swagger UI を IDE 内で切り替えられるようになりました。 Redocly を統合することで、GoLand 内から直接 Try it コンソールにアクセスし、それを使用してパラメーターの設定や API へのリクエストの送信を行えます。
GoLand で AsyncAPI 仕様の書式をより簡単に扱えるようになりました。 IDE はスキーマの検証機能をサポートしており、参照のコード補完、Endpoints(エンドポイント)ビュー、および Editor Preview(エディターのプレビュー)ペインを提供します。
このリリースでは特定の LSP サーバーを IDE のコーディング支援に使用したいプラグイン開発者向けに LSP API を導入しました。独自のプログラミング言語やフレームワークを作成している場合、LSP サーバーとプラグインを作成すれば、それを IDE でサポートすることができます。