GoLand の新機能

GoLand 2022.3 ではパフォーマンス強化が行われているほか、ジェネリクスGo ワークスペースに関連する新機能が提供されています。

Go Playground の統合、Go doc コメントへの改善に対するサポートの追加、HTTP クライアントと Docker 向けの新機能の導入、および新しい UI の提供が行われています。

いつものように、Redis のサポートといったウェブ開発とデータベース向けの新機能も追加されています。

対話的に学習したい方は、ウェルカム画面からアクセスできる「What's New in GoLand 2022.3」(GoLand 2022.1 の新機能)チュートリアルをご利用ください。

最後に大切なお知らせとして、本日 GoLand が 5 周年を迎えました。一緒にお祝いしましょう。 GoLand 2022.3 または GoLand 2022.2.5 で「Happy B-day, GoLand!」と入力してみてください!

パフォーマンスの改善

インデックス作成と go list の実行を示す Background Tasks(バックグラウンドタスク)ウィンドウ

go list の改修によるインデックス作成の改善

GoLand でプロジェクトを開くと、ファイルのインデックスが作成され、プロジェクトの構造に関す情報を報告する go list コマンドが実行されます。 go list の実行中はインデックス作成が中断され、インデックス作成が完了するまでコードインサイト機能にアクセスできなくなります。

旧バージョンでは、GoLand が go list場合によっては 2 回実行することがありました。 そこで、API を変更することで go list の起動回数を減らしました。 この変更により、多数のモジュールを含む大規模プロジェクトのパフォーマンスが劇的に改善することを期待しています。

プロジェクトを開いた際にキャッシュから構造を復元

プロジェクトを開いた際に go list が報告する情報がディスクのキャッシュメモリに保存されるようになりました。 同じプロジェクトをもう一度開くと、プロジェクトの構造に関するデータがメモリから読み込まれ、インデックス作成が開始した時点で考慮されるようになります。

これにより、インデックス作成が中断されず、従来よりも素早く完了するようになりました。そのため、プロジェクトを開いてからコードインサイト機能を使用できるようになるまでの時間が大幅に短縮されています。

IDE の起動時間とプロジェクトを開く時間の短縮

GoLand に多数のパフォーマンス改善が行われ、JetBrains IDE でアプリケーションを起動してプロジェクトを開くのに要する時間が短縮されました。

その結果、エディターの復元を含む全体的な起動パフォーマンスが約 30% 改善されています。

ジェネリクス

ジェネリクス関数のテスト生成

ジェネリクス関数のテスト生成

ジェネリクスパラメーターを含む関数のテストを生成できるようになりました。

パラメーターリストが空の型パラメーターを削除するクイックフィックス

型パラメーターを大文字に変換するクイックフィックス

小文字の型パラメーターを検出するインスペクションと、そのような型パラメーターを大文字表記に変更するクイックフィックスが追加されました。

Go ワークスペース

Go Workspace File(Go ワークスペースファイル)アクションを使用

Go Workspace File(Go ワークスペースファイル)アクション

New(新規作成)コンテキストメニューに、Go Workspace File(Go ワークスペースファイル)アクションが追加されました。 このアクションを選択すると、ルートフォルダーに go.work ファイルが作成されます。 この go.work ファイルには、既存の Go モジュールが自動的に追加されます。

replace ディレクティブを使用した go.work の生成

replace ディレクティブを使用した go.work の生成

go.modreplace ディレクティブがある場合、それを元に go.work を生成できるようになりました。 replace ディレクティブにキャレットを置いて Alt+Enter を押し、使用可能なすべてのインテンションアクションから Add … module to workspace(... モジュールをワークスペースに追加)クイックフィックスを選択します。

Go doc コメント

Go 1.19 より、doc コメント内のリンク、リスト、および新しい見出しがサポートされています。 GoLand 2022.3 でもこれらの新機能がサポートされています。

クイックドキュメントポップアップとドキュメントツールウィンドウにテキストと doc リンクを表示

リンクのサポート

GoLand に doc リンクへの参照を追加しました。 参照をクリックすると参照先の要素が、テキストリンクをクリックするとテキストリンクの定義が表示されます。

テキストと doc リンクはいずれも、Quick Documentation(クイックドキュメント)ポップアップと Documentation(ドキュメント)ツールウィンドウにリンクとして表示されます。

Documentation(ドキュメント)ツールウィンドウに新しい見出しを表示

新しい見出しのサポート

Go 1.19 より、見出しは番号記号(#)+ スペース + 見出しテキストで表示されます。

新しい見出しは、GoLand の Quick Documentation(クイックドキュメント)ポップアップと Documentation(ドキュメント)ツールウィンドウに HTML 見出しとして表示されます。

Documentation(ドキュメント)ツールウィンドウにリストを表示

リストのサポート

リストは、Quick Documentation(クイックドキュメント)ポップアップと Documentation(ドキュメント)ツールウィンドウに HTML リストとして表示されます。

Go Playground の統合

GoLand 内で Go Playgound を使用する

Go Playground の機能を GoLand に組み込みました。

コードを選択して Open In(開く...)オプションを選択し、Playground をクリックすると、 スクラッチファイルが Go Playground を使用する場合と同じオプションを含むツールバーとともに開きます。

コードの整形と共有、Go バージョンの変更、Go Playeground サーバーでのコードの実行、ローカルでの実行が可能です。

新しいクイックフィックス

型をポインターに変換するクイックフィックスを使用する

無効な再帰型のクイックフィックス

自身を含む型があると、「無効な再帰型」エラーが発生します。 To avoid this, you should include a pointer to a type, not a type itself. そのためのクイックフィックスを実装しました。

エディター

コード作成者の名前をエディターに表示

Code Vision

Code Vision 機能の実装を開始しました。 現時点では、バージョン管理統合が有効な場合にコード作成者が表示されるようになっています。 コード作成者の名前をクリックすると、Annotate with Git blame(Git Blame で注釈を付ける)サイドバーが開き、各種の変更を導入した人を確認できます。

関数と型の近くに表示される使用状況を表示

また、現在のプロジェクト内での関数や型の参照回数を示す使用状況をすべての関数と型の近くに表示するようになりました。

定数定義ブロックのインレイヒントをエディターに表示

定数定義のインレイヒント

GoLand が定数定義ブロックのインレイヒントを表示するようになりました。 これは iota から派生した定数ブロックで特に役立ちます。このようなブロックでは、それぞれの位置に対応する iota 値がヒントに表示されます。

「すべてのフィールドを埋める」インテンションアクションの呼び出し時に自動生成の protobuf フィールドを無視

Fill all fields(すべてのフィールドを埋める)で自動生成 protobuf フィールドを無視

Fill all fields(すべてのフィールドを埋める)インテンションアクションを呼び出した際、XXX_ で始まる自動生成のプロトコルバッファーフィールドが無視されるようになりました。 無視されたフィールドは、ユーザーが再度補完を呼び出した後にのみ表示されます。

その他の Go 関連機能

Go 環境変数を設定に表示

Go 環境変数を設定に表示

GoLand が Go モジュールに関連するシステム変数を自動的に検出し、Environment variables(環境変数)ダイアログウィンドウに表示するようになりました。 このウィンドウを開くには、Settings(設定)| Go | Go Modules(Go モジュール)にアクセスし、Edit environment variables(環境変数の編集)アイコンをクリックします。

パッケージ名を Quick documentation(クイックドキュメント)に表示

Quick documentation(クイックドキュメント)にパッケージ名を常に表示

IDE でトップレベル宣言の Quick documentation(クイックドキュメント)ポップアップにパッケージ名が常に表示されるようになりました。 従来は doc.go または <pkg_name>.go ファイルが見つかった場合にのみ、パッケージヘッダーが表示されていました。

ファイルサイズ制限の引き上げ

ファイルサイズ制限を 2.5 MB から 10 MB に引き上げました。 ナビゲーションやハイライトなどのコードインサイト機能は、このサイズ制限を超えるファイルでは機能しません。

ほとんどのファイルは 2.5 MB の制限で十分でしたが、AWS SDK や GCP など、この制限を超えるファイルを含むプロジェクトもあります。

生成されたコードを無視する Receiver names are different(レシーバー名が異なります)インスペクション

Receiver names are different(レシーバー名が異なります)インスペクションは生成されたコードには無意味であるため、^// Code generated .* DO NOT EDIT\.$ という正規表現に一致するコメントを含むファイルには無効にしました。

HTTP クライアント

HTTP クライアントでスクリプトブロックを記述

JavaScript ハンドラーのリクエスト実行前スクリプトと新しい API

HTTP クライアントでリクエスト前にスクリプトブロックを実行できるようになりました。 リクエストを実行する前にデータを生成し、変数を使用して最終的なリクエストに含めることができます。 変数を初期化するボイラープレートコードを作成するクイックフィックスを使用できます。

HTTP リクエストの md5 または sha1 ハッシュ変数を計算

HTTP クライアントが Crypto API をサポートするようになりました。 HTTP リクエストの md5 または sha1 ハッシュ値を計算できます。

HTTP リクエストでランダム値を使用

単純なケースに対応できるよう、IDE に新しい random 変数が追加されました。

Docker

Windows 版 GoLand の Docker 設定

Docker Desktop なしで WSL の Docker 実行可能ファイルを使用する

GoLand が Windows Subsystem for Linux(WSL)で実行中の Docker への接続をサポートするようになりました。 このような接続は、Settings(設定)| Build, Execution, Deployment(構築、実行、デプロイ)| Docker でセットアップできます。

イメージをプルするクイックフィックスを使用

新しいインテンションアクション: Pull Docker image(Docker イメージのプル)

Dockerfiledocker-compose.yml の必要なイメージを実行することなく、簡単にプルできる方法が導入されました。 ハイライト中のイメージ名でコンテキストアクション(Alt+Enter)を呼び出し、Pull Docker image(Docker イメージのプル)を選択します。

dockerignore ファイルでコード補完を使用

.dockerignore ファイル形式のサポート

コードハイライトやコード補完を含め、.dockerignore ファイルを完全にサポートするようになりました。 IDE からイメージをビルドする際にこのファイルが考慮されるようになっています。

GoLand で Heredoc 構文をハイライト

Dockerfile ファイルでの heredoc 形式のサポート

ヒアドキュメントでは、後続の Dockerfile 行を RUN または COPY コマンドの入力にリダイレクトできます。 GoLand がこの構文をサポートするようになったため、Dockerfile ファイル内でこの構文を使用して構成ファイルや複数行のスクリプトを直接生成できます。

Docker コンテキストを使って追加の Docker 接続をセットアップ

Docker コンテキストからの Docker 接続

Docker の構成に接続設定が存在する場合、Docker コンテキストを使って追加の Docker 接続をセットアップできるようになりました。 セットアップを実施するには、Services(サービス)ビューで Add Service(サービスの追加)コンテキストメニューを呼び出し、Docker Connections From Docker Contexts(Docker コンテキストからの Docker 接続)を選択します。

リモート開発(ベータ)

GoLand ウェルカム画面の Remote Development(リモート開発)セクション

IDE バックエンドを WSL 2 内で直接起動し、GoLand でリモート開発を使用する際にリモートマシンに接続するのと同じ方法でそのバックエンドに接続できるようになりました。

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

設定の New UI Preview(新しい UI プレビュー)セクション

新しい UI の公開

ご存知のとおり、今年 5 月に JetBrains IDE の新しい UI の限定プレビュープログラムが発表されました。

Settings(設定)| Appearance & Behavior(外観と動作)| New UI Preview(新しい UI プレビュー)で新しい UI に切り替えてみてください。また、この変更に関するご意見をお寄せください。

インテンションアクションのプレビュー機能を使用

インテンションアクションのプレビュー機能をデフォルトで有効化

インテンションアクションのプレビュー機能がデフォルトで有効化されたため、IDE の提案を適用した後のコードを即時に確認できるようになりました。

このプレビュー機能は、インテンションアクションのリストが開いている状態で Ctrl+Q を押すと有効化または無効化できます。

ツールウィンドウをメインウィンドウの外にドラッグしてフローティングエディタータブにドッキング

ツールウィンドウをフローティングエディタータブにドッキング

作業スペースの整理とマルチモニター環境での GoLand の操作を楽にするため、ツールウィンドウをメインウィンドウの外にドラッグしてフローティングエディタータブにドッキングするオプションを実装しました。

Tip of the Day(今日のヒント)ウィンドウ

Tips of the Day(今日のヒント)の改善

GoLand の習得に役立つ学習ツールである Tips of the Day(今日のヒント)機能を強化しました。

すべてのヒントに見出しが付けられています。 また、表示するヒントを決定するアルゴリズムを微調整し、IDE のエクスペリエンスと作業中のプロジェクトに最も関連性のあるヒントが表示されるようにしました。

エディタータブからファイルをブックマーク

ブックマーク関連の更新

エディタータブからファイルをブックマークできる機能を復活させました。 タブを右クリックしてコンテキストメニューを呼び出し、Bookmarks(ブックマーク)を選択するだけです。

現在開いているタブのすべてのファイルをブックマークに追加

現在開いているタブのすべてのファイルを Bookmarks(ブックマーク)に追加できるようになりました。 これを行うには、コンテキストメニューを呼び出して Bookmark Open Tabs(開いているタブのブックマーク)を選択するか、エディタータブペインの右側にある三点リーダーアイコンを使ってこのアクションを呼び出します。

GoLand 設定の Settings Sync(設定の同期)セクション

新しい Settings Sync(設定の同期)ソリューション

カスタムユーザー設定を同期するためのソリューションを改良しました。 これまで長らく IDE Settings Sync(IDE 設定の同期)と Settings Repository(設定リポジトリ)という機能がかぶる 2 つのプラグインが併存していました。 2 つの似たようなプラグインが存在することによる混乱を防ぐため、これらの機能セットを 1 つのソリューションに統合し、新たに Settings Sync(設定の同期)プラグインを作成しました。

You can find details about the new unified solution here.

データベース

注意: バージョン 2022.3 でのデータベースに関するすべての変更を詳しく見るには、DataGrip の新機能ページにアクセスしてください。

Database(データベース)ツールウィンドウで Redis への接続を選択

Redis のサポート

Redis のサポートが満を持して先行実装されました。

Database(データベース)ツールウィンドウでクイック検索を使用してオブジェクトを絞り込む

クイックフィルター

クイック検索を使用する際にオブジェクトを絞り込めるようになりました。 一致しないすべてのオブジェクトは非表示になります。

ウェブ開発

注意: バージョン 2022.3 でのウェブ開発に関するすべての改善を詳しく見るには、WebStorm の新機能ページにアクセスしてください。

コード作成者の名前と使用状況のメトリクスをエディターに表示

JavaScript と TypeScript 対応の Code Vision

このバージョンでは、ウェブ開発用の新しい Code Vision 機能を導入しています。 JavaScript および TypeScript コードの型と型メンバーに関するさまざまなメトリクスを集約し、この情報をそれぞれの宣言の近くに表示します。

その他の更新

YAML ファイルでインスペクションを抑止するクイックフィックスを使用

YAML でインスペクションを抑止するクイックフィックス

Kubernetes ファイル、OpenAPI 仕様、docker-compose.yml ファイルなど、YAML ファイルのコメントでインスペクションを抑止する新しいクイックフィックスが導入されました。

また、# で開始する 3 行以上のブロックで構成される複数行のコメントを折りたたむオプションも導入しました。

Windows ARM64 用のインストーラー

Windows ARM64 用のインストーラーの配布を開始しました。 弊社ウェブサイトか Toolbox App からダウンロード可能です。