GoLand の新機能

GoLand 2021.2 では Go モジュール 向けの新機能と新しいコード整形オプションを導入し、Go 1.17 の機能をサポートしています。 また、新しい //go:build 構文の適切な使用を支援するものを含め、複数の新しいクイックフィックスを追加しています。

コミットを GPG キーで署名する機能など、バージョン管理機能に対する複数の改善を行っています。 ウェブ開発者向けにはコードを保存する際にブラウザー内のページを自動的にリロードする機能のほか、MongoDB のフィールドと演算子に対応した補完機能を追加しました。

GoLand の新機能をより対話的な方法で確認したいですか? ウエルカム画面から GoLand 2021.2 の新機能チュートリアルをご利用ください。 新しい Onboarding Tour もご覧ください。 GoLand を初めてお使いの方がすぐに使い方を習得するのに役立ちます。

Go モジュール

go.mod ファイル変更後の GoLand によるロード動作を管理する設定画面

go.mod の変更を手動ロード

GoLand 2021.2 では、go.mod を編集した際に IDE が go list を呼び出す動作を管理し、 go.mod ファイルの変更を手動でロードできます。

そのためには Settings | Build, Execution, Deployment | Build Tools を開き、External changes オプションを選択してください。 すると、GoLand は IDE 内でファイルを編集した際に go list を自動的に呼び出さなくなります。

専用のアイコンを押して go.mod の変更を手動ロード

または、編集完了後に表示されている Load Go modules Changes アイコンをクリックして、変更を手動でロードすることもできます。

Reload project after changes in the build scripts チェックボックスをオフにすると、IDE 内および外部での変更の両方に対して Load Go modules Changes アイコンが表示されます。

クイックフィックスで Go のバージョンを変更

複数 Go バージョンのサポートを強化

go.mod ファイルで指定されているものよりも新しいバージョンの Go の機能を使用している場合、GoLand は警告を表示します。 数値リテラルと //go:embed ステートメントの場合は、go.mod で指定されている Go のバージョンを変更するクイックフィックスを使用できます。

ウェルカム画面でプロジェクトのオプション名を変更

Go モジュールが Go プロジェクトのデフォルトに

ウェルカム画面で Go を選択すると、Go モジュールプロジェクトになります。 また、GOPATH ベースのプロジェクトの名前を Go(GOPATH)に変更しました。

未使用依存関係のダウンロード

未使用依存関係の処理

replace ディレクティブの未使用依存関係が灰色でハイライトされるようになりました。 これにより、エラーと区別しやすくなります。 灰色の行にマウスを移動すると、“Unused dependency” のメッセージが表示されます。

未使用モジュールをダウンロードする場合は、Alt+Enter を押してから Download all modules to the module cache オプションを選択してください。 個別のモジュールをダウンロードすることもできます。

フォーマッター

設定の Run gofmt on code reformat オプションを有効化

このリリースでは、Run gofmt on code reformat オプションを導入しています。 GoLand は独自のフォーマッターを備えていますが、gofmt に対しても、より簡単に利用できるようにするために導入されたオプションです。

このオプションが有効な場合、両方のフォーマッターを Ctrl+Alt+L のショートカットで呼び出し、GoLand のフォーマッターに続けて gofmt を実行させることができます。

このオプションはデフォルトで有効になっており、Settings | Editor | Code Style | Go で有効/無効を切り替えることができます。

その他のクイックフィックス

go-build 行をファイルの先頭に移動

新しい //go:build 制約書式のサポート

GoLand には、旧来の // +build 制約と新しい //go:build 構文の両方を適切に使用するのに役立ついくつかの新しいクイックフィックスが用意されています。

まず、//go:build 行を新しい構文の要件に従ってファイル先頭に移動するクイックフィックスがあります。

また、Go 1.16 では旧来の構文を使用することも、新旧両方の構文を使用することもできるため、//go:build 行に加えて // +build 行を生成するクイックフィックスもあります。

ワンクリックで cgo のサポートを有効化

ワンクリックで cgo のサポートを有効化

“C” パッケージをインポートしたにもかかわらず、プロジェクトの設定で cgo のサポートを有効にし忘れている場合、GoLand は Enable cgo support クイックフィックスを含むバナーを表示します。

また、カーソルをパッケージ名の先頭に移動する Navigate to cgo import オプションもあります。 このオプションは、大規模なプロジェクトで import ステートメントを探すのに役立ちます。

デバッガー

デバッグ中に Preview モードを使用

アプリケーションをデバッグする際にも Preview モードを使用できるようになりました。 このモードでは複数のファイルを 1 つのタブで次々と開くことができるため、複数のタブでファイルが開かれてエディターが雑然とするのを防ぐことができます。

デバッグ中に Preview モードを使用できるようにするには、Settings | Editor | General | Editor Tabs を開いて Enable preview tab チェックボックスをオンにしてください。

Go 1.17

スライスを配列ポインターに変換

Go 1.17 ではスライスを配列ポインターに変換できます。 GoLand はこの変換をエラー扱いにしません。 Go 1.17 の機能を試すには、Settings | Go で GOROOT を "Go 1.17" に変更してください。

クイックナビゲーション

internal フォルダーにあるインターフェースの実装に移動

このリリースからは、Navigate to implementations を使用して internal フォルダーにあるインターフェースの実装に移動できます。 ガターをクリックすると、実装に移動します。 その実装からインターフェースに戻ることもできます。

VCS 関連の更新

GoLand で GPG 署名を設定

GPG 署名

GoLand 2021.2 ではコミットを GPG キーで署名し、保護することができます。 この機能は、Settings | Version Control | Git で有効にできます。

If this is your first time using a GPG key, you’ll first need to configure it. GPG キーを事前に構成済みの場合は、ドロップダウンリストから選択できます。

コミット前チェックのオプションを設定

コミット前チェックの新しいオプション

コミット前チェックで Run tests および Analyze code オプションを使用できるようになりました。 そのためには Settings | Version Control | Commit | Before commit を開くか、Commit ビューの歯車アイコンをクリックしてください。

なお、Run tests オプションを使用できるのは、Settings | Version Control | CommitUse non-modal commit interface チェックボックスをオンにしている場合だけです。

Local History メニューの検索フィールドを使用

Local History メニューの新しい検索フィールド

バージョン管理システムに依存することなく変更を追跡できる Local History メニューに新しい検索フィールドを追加しました。 このフィールドは、Local History のリビジョンから目的のテキストをすばやく検索するのに役立ちます。 このフィールドを試すには、ファイルを右クリックしてから Local History | Show History を開いてください。

ただし、Local History を VCS の代わりに使用することはできません。 JetBrains は変更の追跡には VCS を基本的に使用し、Local History は最後の頼みの綱として使用することをお勧めします。

未コミットの変更を格納するノードを Changes に名前変更

Default Changelist から Changes に変更

コミットされていないすべての変更を格納するノードに新しい名前を付けました。 このノードは Default Changelist と呼ばれていましたが、今後は Changes と呼ばれることになります。 この変更は、デフォルトですべての新規プロジェクトに適用されます。 また、Git 操作によって changelists の作成処理が自動的に呼び出されることはなくなりました。

UI の改善

接続中プロジェクトの GoLand での表示

接続中(attached)プロジェクトの表示を改善

Project ビューで接続中のプロジェクトの表示方法を変更しました。 従来、接続中のプロジェクトは既存プロジェクトの子ディレクトリとして表示されていました。 接続中のプロジェクトが Project ビューに個々のディレクトリとして表示されるようになりました。

新しい高度な設定とナビゲーションの矢印

高度な設定とナビゲーションの矢印

新しい Advanced Settings ノードを Settings に追加しました。 この設定には Distraction-free モードの左マージンを構成するオプションなど、追加の構成オプションが含まれています。

また、Settings には新しいナビゲーションオプションが追加されています。 今後はウィンドウ右上にある矢印を使用して、セクション間を前後に移動できます。

アップデートがある場合の GoLand からの通知

JetBrains Toolbox App のアップデート通知

GoLand は入手可能な新バージョンがある場合に通知し、IDE から新バージョンに直接アップデートするオプションを提供します。 この機能を使用するには、JetBrains Toolbox App バージョン 1.20.8804 以降が必要です。

設定でカーソル形状を変更

ターミナルの新しいオプション

Settings | Tools | Terminal を開き、組み込みのカーソル形状を下線または縦線に変更できるようになりました。

Terminal 設定にも変更点があります。 今回、Use Option as Meta key 設定を新たにサポートしています。 Meta キーを他のキーと組み合わせて押すと、他のキーの通常動作が一時的に変更されます。 Meta キーはターミナルを多用する場合に便利です。

プロジェクトアイコンの変更

新しいプロジェクトアイコン変更ウィンドウ

ウェルカム画面のプロジェクトリストで使用されているプロジェクトアイコンをカスタマイズできるダイアログを整備しました。 カスタムアイコンをアップロードするには、プロジェクトを右クリックし、表示されるコンテキストメニューから Change project icon を選択するだけです。

ウェブ開発

コード保存時にブラウザー内のページを更新

保存時にブラウザーページのリロード

GoLand で HTML / CSS / JavaScript ファイルの編集と保存を行った際に、ブラウザー内のページを更新できるようになりました。

保存時のページリロードは、デフォルトでオンになっています。 この動作は、Settings | Build, Execution, Deployment | Debugger | Built-in Server でオンオフできます。

React フックの名前変更

React の useState フック向け Rename リファクタリング

リファクタリングが React フックの useState 値と関数に対して機能するようになりました。 状態値にキャレットを配置し、Shift+F6Rename リファクタリングを呼び出すか、右クリックで表示されるコンテキストメニューから Refactor | Rename に移動するだけです。

GoLand による欠落した require ステートメントの補完

require() の自動インポート

GoLand では ES6 シンボルを補完する際に欠落している import ステートメントを追加できます。これと同じ機能を CommonJS モジュールで使用できるようになりました。require() インポートがコード補完時に挿入されます。

GoLand による private npm パッケージのコード補完

private npm パッケージのコード補完

コード補完が private npm パッケージに対して機能するようになりました。 GoLand では、public パッケージと同様に、パッケージの最新バージョンに関する情報を参照できます。

Vue フレームワークで web-types を使用

web-types の全般的なサポート

さまざまな Web フレームワークをドキュメント化するためのオープンソースの標準である web-types の新バージョンを導入しています。 web-types の初期バージョンは Vue.js のサポートのみが重視されていました。

JetBrains はより簡単に新しい JavaScript フレームワークをサポートし、既存フレームワークのサポートを拡張するための新しいアーキテクチャを開発したいと考えています。 WebStorm チームによるこちらのブログ記事ウェビナーをご覧いただくと、web-types の使い方をより深く理解することができます。

データベース操作

MongoDB コンソール内で実行されるコードの補完

コード補完が MongoDB コンソールでフィールド、ネストしたフィールド、集約式内のフィールドに対して機能するようになりました。 また、クエリ演算子と射影演算子、更新演算子、集約ステージに対しても機能します。

その他の変更

保存時のアクションの設定を調整

保存時のアクション実行

考えられるすべての保存時のアクションを Settings | Tools | Actions on Save に集約し、そこで構成できるようにしました。有効にしたいアクションの横にあるチェックボックスをオンにするだけです。

任意のアクションについて、設定をより細かく調整することもできます。 そのためには対象のアクションにマウスを移動した後、構成リンクをクリックし、表示される関連設定のページでアクションを微調整してください。

キャッシュとログの削除

キャッシュとログの自動クリーンアップ

GoLand は、最後の更新から 180 日超が経過したキャッシュおよびログのディレクトリを自動的にクリーンアップします。 システムの設定やプラグインのディレクトリがこの処理に影響されることはありません。

ログとキャッシュのクリーンアップは、Help | Delete Leftover IDE Directories… アクションを使用して手動で実行できます。

GoLand で文法チェックを設定

Go ファイルのインテリジェントなスペルおよび文法チェック

Go ファイルのインテリジェントなスペルおよび文法チェックをデフォルトで有効にしました。 これらのチェックは、IDE にバンドルされている Grazie プラグインによって実現しています。

設定を調整するには、Settings | Editor | Natural Languages | Grammar を開いてください。

GoLand の中国語ユーザーインターフェース

日本語、中国語、韓国語の UI

GoLand の UI が中国語韓国語、および日本語に完全にローカライズされました。 このローカライズはバンドル対象外の言語パックプラグインとして提供されており、GoLand へ簡単にインストールできます。

Code With Me

GoLand が Code With Me セッション中の同僚に提示しているコード補完候補を表示中

GoLand が Code With Me セッション中の同僚に提示するコード補完候補を追跡できるようになりました。 この機能を使用するには、Following モードで作業する必要があります。