GoLand の新機能

GoLand 2023.2 では Go モジュールとの統合の改善、関数パラメーターとメソッドレシーバー間での双方向の移行リファクタリング、および errors.Iserrors.As のサポートが導入されています。

このバージョンには新しい AI Assistant プラグイン、GitLab の統合機能、および Kafka プラグインも含まれています。

また、Docker の統合と Kubernetes プラグイン関連の改善も導入されています。

対話的に学習したい方は、「Welcome」(ようこそ)画面からアクセスできる「What's New in GoLand 2023.2」(GoLand 2023.1 の新機能)チュートリアルをご利用ください。

Go モジュール

GoLand の Go モジュールの設定

自動的にモジュールをダウンロードするオプション

プロジェクトを開いたときと go.mod ファイルに変更が適用されるたびに Go モジュールを自動的にダウンロードする機能を導入しました。 この機能はデフォルトで有効になっていますが、いつでも Settings(設定)| Go | Go Modules(Go モジュール)からオフにすることができます。

go.mod の依存関係を更新する新しいクイックフィックスの使用

go.mod の依存関係を更新するインテンションアクション

go.mod ファイルの依存関係をより迅速に更新できるよう、複数のインテンションアクションとインスペクションを追加しました。

go.mod ファイルを開くと、GoLand で古くなった依存関係がハイライトされるようになっています。 そのパッケージのハイライトされているバージョンにマウスポインターを合わせると、クイックフィックスを使って更新することができます。 また、すべての依存関係を最新のパッチかメジャーバージョンに更新することも可能で、直接の依存関係のみを更新するオプションもあります。

GoLand のベンダリングを無効にするオプション

ベンダリングを無効にするオプション

別の言語で使用されているベンダーフォルダーを含むモノリポがある場合などにベンダリングをプロジェクトごとに無効にできるようになりました。 ベンダリングは新規プロジェクトを作成する際や他のタイミングで、Settings(設定)| Go | Go Modules(Go モジュール)に移動して無効にできます。

リファクタリング

GoLand の関数パラメーターをメソッドレシーバーに移行するリファクタリングを使用

関数パラメーターとメソッドレシーバー間の移行

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(メソッドレシーバーを関数パラメーターに移行する)は逆の変換を行うもので、型のメソッドを関数に変換します。

エラー処理

GoLand に直接のエラー比較を errors.Is の使用に変換することを提案するクイックフィックスが導入されています。

errors.Iserrors.As のサポート

errors.Is または errors.As を使用すべきケースをハイライトする 2 つのインスペクションを導入しました。 既存のコードを errors.Is または errors.As を使用するようにリファクタリングできるクイックフィックスもあります。

1 つ目のインスペクションはエラーの直接比較をハイライトするものです。 Go 1.13 以降ではエラーを %w 動詞を使用する fmt.Errorf 関数でラップ可能で、等値チェックを使用するエラーの直接比較はラップされたエラーで失敗する可能性があります。

特定のエラーをチェックするには、標準ライブラリの errors.Is 関数を使用するのが望ましいです。 GoLand に直接のエラー比較を errors.Is の使用に変換することを提案するクイックフィックスが導入されています。

GoLand にエラーに対する型アサーションと型スイッチを errors.As の使用に変換するように提案するクイックフィックスが導入されています。

2 つ目のインスペクションは、err.(*MyErr) または switch err.(type) などのエラーに対する型アサーションと型スイッチをハイライトします。これらもラップされたエラーで失敗する可能性があるためです。

Go 1.13 以降では、errors.As を使用するのが望ましいです。 新しいクイックフィックスは、エラーに対する型アサーションと型スイッチを errors.As の使用に変換するように提案します。

Go 1.21

minmax、および clear のサポート

GoLand 2023.2 には、minmax、および clear という Go 1.21 で導入された新しい関数の基本サポートが備わっています。

make の改善

make 関数引数の補完オプション

make 関数引数の補完

make 関数の呼び出しに対応した型認識コード補完を追加しました。

make 関数の誤った使用箇所に関する GoLand の通知

make 関数引数のチェック

GoLand が make 関数のエラーと冗長な引数を検出できるようになりました。 冗長な引数を除去するクイックフィックスもあり、通常どおり Alt+Enter からアクセスできます。

その他の Go 関連機能

メソッドが型に対して直接呼び出されている場合にレシーバーを補完候補の最初のパラメーターとして表示

メソッド式に対してレシーバー型の補完を提案

メソッドを型に対して直接呼び出す場合、最初の引数にはレシーバー型を指定する必要があります。 このような場合に GoLand がレシーバーを補完候補の最初のパラメーターとして表示するようになりました。

型のインスタンス化で型引数の欠落を示す GoLand のエラーメッセージ

ジェネリクス: 欠落した引数に関するエラーメッセージの改善

型のインスタンス化で型引数が欠落している場合のエラーメッセージが間違いの内容を明示的に示すようになりました。

GoLand の Wrap error handling in a closure(クロージャでエラー処理をラップする)インテンションアクションのプレビュー

Wrap error handling in a closure(クロージャでエラー処理をラップする)インテンションアクションのプレビュー

Wrap error handling in a closure(クロージャでエラー処理をラップする)インテンションアクションのプレビューを追加しました。 このプレビュー機能はインテンションアクションのリストが開いている間に Ctrl+Q を押すと無効にでき、同じショートカットを使って有効にされるまでは無効のままになります。

for ループ内の冗長な条件に関する GoLand の警告

for ループの冗長な条件に関する警告

GoLand が for ループに冗長な条件が含まれることを示す警告メッセージを表示するようになりました。 冗長な条件を除去するクイックフィックスも用意されています。

AI Assistant

コードの改善方法に関する AI Assistant プラグインの提案

AI Assistant 限定アクセス

このリリースでは、GoLand への大きな追加機能となる AI Assistant が導入されました。 現在、AI Assistant は組み込みの AI チャットを初期の AI 駆動型機能一式と共に提供しており、ドキュメントコメントの自動記述、名前の提案、コミットメッセージの生成などを実行できます。

AI Assistant は JetBrains AI サービスによって提供されており、現時点では OpenAI に接続できるようになっています。将来的には他の言語モデルプロバイダーも対応の予定です。 アシスタントの AI 機能にアクセスするには、JetBrains AI プラグインをインストールし、JetBrains Account を使って JetBrains AI サービスにログインする必要があります。 最初の段階で JetBrains AI サービスを利用できるかどうかは人によって異なる可能性があります。 AI Assistant に関する詳細とそのアクセス方法については、こちらのページをご覧ください。

Docker

Services(サービス)ビューで Docker イメージレイヤーのコンテンツをプレビュー

Docker イメージレイヤー内のファイルをプレビュー

Services(サービス)ツールウィンドウで Docker イメージレイヤーのコンテンツに簡単にアクセスしてプレビューできるようになりました。 リストからイメージを選択して Show layers(レイヤーの表示)を選択し、Analyze image for more information(イメージを解析して詳細を得る)をクリックします。 すると、レイヤーに格納されたファイルのリストが開きます。このリストにあるファイルを右クリックして Open File(ファイルを開く)(バイナリの場合は Download File(ファイルのダウンロード))をクリックすると、選択したファイルを簡単にエディターで開けます。

Docker コンテナーを Before Launch(起動前)タスクとして実行する設定

Docker コンテナーを実行構成の Before Launch(起動前)タスクとして実行する設定

Docker の実行構成を Before Launch(起動前)タスクに指定することで、他の構成より前に実行するように設定できるようになりました。 IDE はその時点で稼働中のコンテナーが健全な状態になるのを待ってから次の実行構成を起動します。 キューをセットアップするには、必要な Docker 実行構成を作成してから、Modify options(オプションの変更)| Add before launch task(起動前タスクの追加)| Run configuration(実行構成)でその構成をコンテナーに追加します。

Kubernetesプラグイン

GoLand に表示された Kubernetes の設定

単一プロジェクト内での複数 kuberconfig ファイルのサポート

複数の kuberconfig ファイルを単一のプロジェクト内でセットアップできる新機能を導入しました。 これにより、同じプロジェクト内で複数のクラスターを処理したり、別々のクラスターの環境を操作したりするのが簡単になります。 ファイルをセットアップするには、File(ファイル)| Settings(設定)| Build, Execution, Deployment(ビルド、実行、デプロイ)| Kubernetes に移動します。

GoLand に表示された Kubernetes のデプロイログ

デプロイログを表示する機能

Services(サービス)ツールウィンドウで Kubernetes クラスターのデプロイログを表示できるようになりました。 ツリーの Deployment(デプロイ)を右クリックし、コンテキストメニューの Follow Log(ログの追跡)または Download Log(ログのダウンロード)を選択します。

パフォーマンス

共有インデックスを簡単に生成するための新しいツール

共有インデックスを素早く構築してアップロードするための新しいコマンドラインツールを導入しました。 チームワークを合理化し、ローカルでの大規模なプロジェクトのインデックス作成にかかる無駄な時間をなくすように設計されています。 新しいツールはチームの共有インデックスの生成プロセスを単純化します。複数のスクリプトやサービスを使用せず、わずか数回のクリックで完了できます。
詳細

バージョン管理

コミットする行の選択

特定コード行をコミットするオプション

コードチャンクの特定部分を選択的にコミットできるようになりました。 部分コミットを実行するには、チャンク内の必要な行を選択し、コンテキストメニューから Include these lines into commit(これらの行をコミットに含める)を呼び出します。 このチャンクは選択した部分がハイライトされた状態で個別の行に分割されます。 チェックボックスかコンテキストメニューを使用して選択範囲に行を追加するか除外するかを指定できます。

GitLab 統合

GoLand での GitLab プラグインの機能

GoLand 2023.2 には開発ワークフローを合理化する GitLab との統合機能が導入されています。 リクエストのリストの確認、変更内容の確認、コメントの書き込み、関連するビューへの移動など、IDE から直接マージリクエスト機能を操作できます。

Kafka プラグイン

GoLand での Kafka プラグインの機能

Kafka プラグイン

新しい Kafka プラグインでは Kafka イベントストリーミングプロセスを監視できます。 Kafka クラスターへの接続、各種フォーマットでのメッセージの生成と消費、トピックの管理とコンシューマーグループの監視、および Confluent Schema Registry と AWS Glue Schema Registry の使用が可能です。 詳細は、こちらのドキュメントページをご覧ください。

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

GoLand 設定でバンドルの VS Code キーマップを選択

VS Code キーマップのバンドル

VS Code キーマップを使い慣れているユーザーが Welcome(ようこそ)画面の Customize(カスタマイズ)セクションでこのキーマップを選択できるようになりました。 Settings(設定)| Keymap(キーマップ)でキーマップを変更することもできます。

変更日時によるファイルの並べ替え

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

GoLand 2023.2 には Project(プロジェクト)ビューのファイルを変更日時に基づいて並べ替える待望のオプションが導入されています。 この新機能により、プロジェクトの変更が保存されるたびにファイルが自動的に並べ替えられるようになります。 この機能を有効にするには Project(プロジェクト)ビューのケバブメニュー(縦三点リーダー)を開き、Tree Appearance(ツリーの外観)| Sort by Modification Time(変更日時で並べ替え)を選択します。

GoLand の実行構成をピン留めするオプション

Run(実行)ウィジェットでの実行構成のピン留め

複数の実行構成を管理しやすくするため、Run(実行)ウィジェットにお好みの構成をピン留めできるオプションを実装しました。 Pinned(ピン留め)セクションに実行構成を追加するには、名前の横にあるケバブメニュー(縦三点リーダー)を開いて Pin(ピン留め)を選択します。 ピン留めされた構成が複数ある場合はドラッグアンドドロップ操作でリスト内の構成の位置を簡単に調整できます。

メインツールバーに Update Project(プロジェクトの更新)ボタンを追加

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

新しい UI のメインツールバーのカスタマイズオプションを拡張しました。 ドロップダウンメニューを使用して必要なアクションを素早く選択し、このツールバーに追加できるようになっています。 これを行うには任意のウィジェットで右クリックして Add to Main Toolbar(メインツールバーに追加)を選択し、使用できるオプションを参照します。

Windows の GoLand でハンバーガーメニューを独立したツールバーに変換

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

Windows および Linux のメインツールバーにある新しい UI のハンバーガーメニューの動作を改良しました。 メニューアイコンをクリックすると、その構成要素がツールバー上で横方向に表示されるようになっています。 また、View(表示)| Appearance(外観)| Main menu as a Separate Toolbar(メインメニューをツールバーとして分離する)にはこのメニューを独立したツールバーに変換するオプションもあります。

GoLand の設定で Open Directories with Single Click(ワンクリックでディレクトリを開く)オプションを選択

ワンクリックでプロジェクトディレクトリ間を移動

より迅速かつ応答性の高いプロジェクトフォルダーの展開と折りたたみを可能にする新しい Open Directories with Single Click(ワンクリックでディレクトリを開く)オプションが Project(プロジェクト)ビューに追加されています。 このオプションはケバブ(縦三点リーダー)メニューをクリックして開くドロップダウンメニューにあります。

テキスト検索オプションを返している Search Everywhere(どこでも検索)ポップアップ

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

Search Everywhere(どこでも検索)(Double Shift)は主にファイル、メソッド、アクション、および設定の検索に使用されます。 このアップデートでは、Find in Files(複数ファイル内検索)と同様のテキスト検索機能が追加されています。 これにより、ある特定のクエリに対する検索結果がほとんどない場合にテキスト検索の結果が表示されるようになりました。 この機能はデフォルトで有効になっており、Settings(設定) | Advanced Settings(高度な設定)で管理できます。

インスペクションの説明の構文ハイライト

インスペクションの説明に構文ハイライトを実装

Settings(設定)| Editor(エディター)| Inspections(インスペクション)のコードサンプルで構文がハイライトされるようになりました。インスペクションのトリガー元を把握し、そのインスペクションを有効または無効にするかを決めやすくなっています。

Plugins(プラグイン)セクションでのプラグインの提案

Settings(設定)でのプラグインの提案

IDE を特定のプロジェクトに合わせて構成し、その機能をプラグインで拡張しやすくするため、Settings(設定)| Plugins(プラグイン)セクションの UI を更新しました。 プロジェクトの仕様に応じて自動的に決まる推奨プラグインのセットがリストの上部に表示されるようになっています。

ユーザーインターフェース

GoLand でヘッダーの色が異なる複数のプロジェクトを開く

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

GoLand 2023.2 では開いている複数のプロジェクト間を簡単に移動できるように色付きのプロジェクトヘッダーが導入されています。 プロジェクトごとに固有の色とアイコンを割り当てることができるため、ワークスペース内のプロジェクトがより区別しやすくなりました。

ヘッダーには定義済みの色がデフォルトで適用されていますが、これはカスタマイズ可能です。 プロジェクトに新しい色を設定するには、ヘッダーを右クリックしてコンテキストメニューを開きます。 Change Project Color(プロジェクトの色を変更)オプションを選択し、希望する色を選択します。 この機能を無効にするには、コンテキストメニューの Show Project Gradient(プロジェクトのグラデーションを表示)オプションを選択解除します。

GoLand の Light with Light Header(ライトヘッダーを使ったライト)テーマ

新しい UI にライトヘッダーを使ったライトテーマを導入

バージョン 2023.2 は代替の Light with Light Header(ライトヘッダーを使ったライト)テーマが導入されたため、ユーザーエクスペリエンスが向上しています。このテーマではウィンドウのヘッダー、ツールチップ、および通知バルーンで対応する明るい色が使用されます。

GoLand の Services(サービス)ツールウィンドウの UI を更新

Services(サービス)ツールウィンドウの Run/Debug(実行/デバッグ)ウィジェットの UI を更新

Services(サービス)ツールウィンドウ内の実行およびデバッグアクション用の UI を改良し、メインの Run/Debug(実行/デバッグ)ウィジェットと同様のツールバーの外観と使い心地を実現しました。

Linux ネイティブのヘッダーを使用しない GoLand

Linux の新しい UI でタイトルバーを削除

Linux ユーザーの利便性を考慮し、オペレーティングシステムのネイティブヘッダーが新しい UI から削除されました。その結果、よりすっきりとしたインターフェースになっています。 デフォルトではカスタムの IDE ヘッダーが表示されるようになっていますが、ユーザーのワークスペースに合わせてカスタマイズできるオプションが豊富に提供されています。

HTTP クライアント

HTTP クライアントでの Swagger スキーマのコード補完

Swagger と OpenAPI スキーマのサポート

HTTP クライアントが Swagger と OpenAPI の仕様を理解し、JSON リクエストに対応するコード補完オプションを提供できるようになりました。

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

JavaScript インポートのサポート

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

HTTP クライアントでの PDF ファイルのプレビュー

レスポンスの PDF および HTML プレビュー

GoLand で HTTP クライアントのリクエスト結果に含まれる PDF ファイルと HTML ファイルのプレビューを直接表示できるようになりました。

HTTP クライアントの TLS を使用する gRPC リクエスト

HTTP クライアントの TLS を使用する gRPC リクエスト

HTTP クライアントでトランスポート層セキュリティプロトコル(TLS)を使用して gRPC リクエストを送信できるようになりました。 TLS は暗号化と認証の機能を提供し、データ送信の機密性と整合性を確保します。 リクエストの構文では https://grpcs:// のどちらのスキーマもサポートされています。

ウェブ開発

GoLand での TypeScript エラー書式の改善

エラー書式の改善

GoLand 2023.2 では、エラーと警告がより可読性に優れた書式になり、コード内の問題を発見しやすくなります。 この書式はすべての TypeScript エラーと一部のごく一般的な JavaScript エラーに適用されます。

ネストされた CSS コードの使用箇所を修正する GoLand のインスペクション

CSS のネストをサポート

GoLand で CSS のネストモジュール機能がサポートされるようになりました。 構文のサポートに加えて、ネストされたセレクターが識別子や関数表記で開始しないようにするインスペクションが実装されています。

その他

GoLand による YAML ドキュメントの NO 文字列のハイライト

YAML ファイルの Norway problem に対応したインスペクション

いわゆる「Norway problem」と言われる問題を解消し、YAML ファイルに含まれるブール値の意図しない解釈が起こるのを防ぐための新しいインスペクションが導入されました。

リストが主に文字列で構成されていてもブール型のようなリテラルを含んでいる場合、GoLand はそのリテラルをハイライトして潜在的な矛盾を示し、引用符を追加するように提案します。 リストが主にブール値のようなリテラル(true、false、off、on、yes、no など)で構成されている場合、このパターンから外れるリテラルは潜在的なエラーとしてハイライトされます。 ただし、このシナリオで提案される特定のクイックフィックスはありません。

GoLand の Edit Swagger Codegen Configuration(Swagger Codegen 構成の編集)ダイアログの改良

Swagger Codegen に関する改善

IDE で Swagger Codegen 構成をセットアップする際のユーザーエクスペリエンスが改善されました。 ユーザーの要件に合わせて実行構成をカスタマイズしやすくするため、Edit Swagger Codegen Configuration(Swagger Codegen 構成の編集)ダイアログが改良されています。

GoLand で Swagger Codegen 構成を実行中

また、ガターから直接 Swagger Codegen の実行構成にアクセスできるようになったため、追加の設定を指定する必要がなくなりました。

GoLand での Redoc プレビュー

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

GoLand が YAML ファイルや JSON ファイルを含む OpenAPI および Swaggeer 仕様ファイルの Redoc UI プレビューをサポートするようになり、Redoc と Swagger UI を IDE 内で切り替えられるようになりました。 Redocly を統合することで、GoLand 内から直接 Try it コンソールにアクセスし、それを使用してパラメーターの設定や API へのリクエストの送信を行えます。

Editor Preview(エディターのプレビュー)ペインと AsyncAPI スキーマのエンドポイント表示

AsyncAPI ファイルの編集サポート

GoLand で AsyncAPI 仕様の書式をより簡単に扱えるようになりました。 IDE はスキーマの検証機能をサポートしており、参照のコード補完、Endpoints(エンドポイント)ビュー、および Editor Preview(エディターのプレビュー)ペインを提供します。

プラグイン開発者向けの LSP API

このリリースでは特定の LSP サーバーを IDE のコーディング支援に使用したいプラグイン開発者向けに LSP API を導入しました。 独自のプログラミング言語やフレームワークを作成している場合、LSP サーバーとプラグインを作成すれば、それを IDE でサポートすることができます。