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
の改修によるインデックス作成の改善 プロジェクトを開いた際に go list
が報告する情報がディスクのキャッシュメモリに保存されるようになりました。 同じプロジェクトをもう一度開くと、プロジェクトの構造に関するデータがメモリから読み込まれ、インデックス作成が開始した時点で考慮されるようになります。
これにより、インデックス作成が中断されず、従来よりも素早く完了するようになりました。そのため、プロジェクトを開いてからコードインサイト機能を使用できるようになるまでの時間が大幅に短縮されています。
GoLand に多数のパフォーマンス改善が行われ、JetBrains IDE でアプリケーションを起動してプロジェクトを開くのに要する時間が短縮されました。
その結果、エディターの復元を含む全体的な起動パフォーマンスが約 30% 改善されています。
ジェネリクスパラメーターを含む関数のテストを生成できるようになりました。
小文字の型パラメーターを検出するインスペクションと、そのような型パラメーターを大文字表記に変更するクイックフィックスが追加されました。
New(新規作成)コンテキストメニューに、Go Workspace File(Go ワークスペースファイル)アクションが追加されました。 このアクションを選択すると、ルートフォルダーに go.work
ファイルが作成されます。 この go.work
ファイルには、既存の Go モジュールが自動的に追加されます。
replace
ディレクティブを使用した go.work
の生成 go.mod
に replace
ディレクティブがある場合、それを元に go.work
を生成できるようになりました。 replace
ディレクティブにキャレットを置いて Alt+Enter を押し、使用可能なすべてのインテンションアクションから Add … module to workspace(... モジュールをワークスペースに追加)クイックフィックスを選択します。
Go 1.19 より、doc コメント内のリンク、リスト、および新しい見出しがサポートされています。 GoLand 2022.3 でもこれらの新機能がサポートされています。
GoLand に doc リンクへの参照を追加しました。 参照をクリックすると参照先の要素が、テキストリンクをクリックするとテキストリンクの定義が表示されます。
テキストと doc リンクはいずれも、Quick Documentation(クイックドキュメント)ポップアップと Documentation(ドキュメント)ツールウィンドウにリンクとして表示されます。
Go 1.19 より、見出しは番号記号(#
)+ スペース + 見出しテキストで表示されます。
新しい見出しは、GoLand の Quick Documentation(クイックドキュメント)ポップアップと Documentation(ドキュメント)ツールウィンドウに HTML 見出しとして表示されます。
リストは、Quick Documentation(クイックドキュメント)ポップアップと Documentation(ドキュメント)ツールウィンドウに HTML リストとして表示されます。
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 機能の実装を開始しました。 現時点では、バージョン管理統合が有効な場合にコード作成者が表示されるようになっています。 コード作成者の名前をクリックすると、Annotate with Git blame(Git Blame で注釈を付ける)サイドバーが開き、各種の変更を導入した人を確認できます。
また、現在のプロジェクト内での関数や型の参照回数を示す使用状況をすべての関数と型の近くに表示するようになりました。
GoLand が定数定義ブロックのインレイヒントを表示するようになりました。 これは iota
から派生した定数ブロックで特に役立ちます。このようなブロックでは、それぞれの位置に対応する iota
値がヒントに表示されます。
Fill all fields(すべてのフィールドを埋める)インテンションアクションを呼び出した際、XXX_
で始まる自動生成のプロトコルバッファーフィールドが無視されるようになりました。 無視されたフィールドは、ユーザーが再度補完を呼び出した後にのみ表示されます。
GoLand が Go モジュールに関連するシステム変数を自動的に検出し、Environment variables(環境変数)ダイアログウィンドウに表示するようになりました。 このウィンドウを開くには、Settings(設定)| Go | Go Modules(Go モジュール)にアクセスし、Edit environment variables(環境変数の編集)アイコンをクリックします。
IDE でトップレベル宣言の Quick documentation(クイックドキュメント)ポップアップにパッケージ名が常に表示されるようになりました。 従来は doc.go
または <pkg_name>.go
ファイルが見つかった場合にのみ、パッケージヘッダーが表示されていました。
ファイルサイズ制限を 2.5 MB から 10 MB に引き上げました。 ナビゲーションやハイライトなどのコードインサイト機能は、このサイズ制限を超えるファイルでは機能しません。
ほとんどのファイルは 2.5 MB の制限で十分でしたが、AWS SDK や GCP など、この制限を超えるファイルを含むプロジェクトもあります。
Receiver names are different(レシーバー名が異なります)インスペクションは生成されたコードには無意味であるため、^// Code generated .* DO NOT EDIT\.$
という正規表現に一致するコメントを含むファイルには無効にしました。
HTTP クライアントでリクエスト前にスクリプトブロックを実行できるようになりました。 リクエストを実行する前にデータを生成し、変数を使用して最終的なリクエストに含めることができます。 変数を初期化するボイラープレートコードを作成するクイックフィックスを使用できます。
HTTP クライアントが Crypto API をサポートするようになりました。 HTTP リクエストの md5 または sha1 ハッシュ値を計算できます。
単純なケースに対応できるよう、IDE に新しい random 変数が追加されました。
GoLand が Windows Subsystem for Linux(WSL)で実行中の Docker への接続をサポートするようになりました。 このような接続は、Settings(設定)| Build, Execution, Deployment(構築、実行、デプロイ)| Docker でセットアップできます。
Dockerfile
や docker-compose.yml
の必要なイメージを実行することなく、簡単にプルできる方法が導入されました。 ハイライト中のイメージ名でコンテキストアクション(Alt+Enter)を呼び出し、Pull Docker image(Docker イメージのプル)を選択します。
.dockerignore
ファイル形式のサポートコードハイライトやコード補完を含め、.dockerignore
ファイルを完全にサポートするようになりました。 IDE からイメージをビルドする際にこのファイルが考慮されるようになっています。
ヒアドキュメントでは、後続の Dockerfile
行を RUN
または COPY
コマンドの入力にリダイレクトできます。 GoLand がこの構文をサポートするようになったため、Dockerfile
ファイル内でこの構文を使用して構成ファイルや複数行のスクリプトを直接生成できます。
Docker の構成に接続設定が存在する場合、Docker コンテキストを使って追加の Docker 接続をセットアップできるようになりました。 セットアップを実施するには、Services(サービス)ビューで Add Service(サービスの追加)コンテキストメニューを呼び出し、Docker Connections From Docker Contexts(Docker コンテキストからの Docker 接続)を選択します。
IDE バックエンドを WSL 2 内で直接起動し、GoLand でリモート開発を使用する際にリモートマシンに接続するのと同じ方法でそのバックエンドに接続できるようになりました。
ご存知のとおり、今年 5 月に JetBrains IDE の新しい UI の限定プレビュープログラムが発表されました。
Settings(設定)| Appearance & Behavior(外観と動作)| New UI Preview(新しい UI プレビュー)で新しい UI に切り替えてみてください。また、この変更に関するご意見をお寄せください。
インテンションアクションのプレビュー機能がデフォルトで有効化されたため、IDE の提案を適用した後のコードを即時に確認できるようになりました。
このプレビュー機能は、インテンションアクションのリストが開いている状態で Ctrl+Q を押すと有効化または無効化できます。
作業スペースの整理とマルチモニター環境での GoLand の操作を楽にするため、ツールウィンドウをメインウィンドウの外にドラッグしてフローティングエディタータブにドッキングするオプションを実装しました。
GoLand の習得に役立つ学習ツールである Tips of the Day(今日のヒント)機能を強化しました。
すべてのヒントに見出しが付けられています。 また、表示するヒントを決定するアルゴリズムを微調整し、IDE のエクスペリエンスと作業中のプロジェクトに最も関連性のあるヒントが表示されるようにしました。
エディタータブからファイルをブックマークできる機能を復活させました。 タブを右クリックしてコンテキストメニューを呼び出し、Bookmarks(ブックマーク)を選択するだけです。
現在開いているタブのすべてのファイルを Bookmarks(ブックマーク)に追加できるようになりました。 これを行うには、コンテキストメニューを呼び出して Bookmark Open Tabs(開いているタブのブックマーク)を選択するか、エディタータブペインの右側にある三点リーダーアイコンを使ってこのアクションを呼び出します。
カスタムユーザー設定を同期するためのソリューションを改良しました。 これまで長らく IDE Settings Sync(IDE 設定の同期)と Settings Repository(設定リポジトリ)という機能がかぶる 2 つのプラグインが併存していました。 2 つの似たようなプラグインが存在することによる混乱を防ぐため、これらの機能セットを 1 つのソリューションに統合し、新たに Settings Sync(設定の同期)プラグインを作成しました。
You can find details about the new unified solution here.
注意: バージョン 2022.3 でのデータベースに関するすべての変更を詳しく見るには、DataGrip の新機能ページにアクセスしてください。
Redis のサポートが満を持して先行実装されました。
クイック検索を使用する際にオブジェクトを絞り込めるようになりました。 一致しないすべてのオブジェクトは非表示になります。
注意: バージョン 2022.3 でのウェブ開発に関するすべての改善を詳しく見るには、WebStorm の新機能ページにアクセスしてください。
このバージョンでは、ウェブ開発用の新しい Code Vision 機能を導入しています。 JavaScript および TypeScript コードの型と型メンバーに関するさまざまなメトリクスを集約し、この情報をそれぞれの宣言の近くに表示します。
Kubernetes ファイル、OpenAPI 仕様、docker-compose.yml
ファイルなど、YAML ファイルのコメントでインスペクションを抑止する新しいクイックフィックスが導入されました。
また、#
で開始する 3 行以上のブロックで構成される複数行のコメントを折りたたむオプションも導入しました。
Windows ARM64 用のインストーラーの配布を開始しました。 弊社ウェブサイトか Toolbox App からダウンロード可能です。