GoLand 2021.3 では、WSL 環境の Go プロジェクトがネイティブにサポートされるようになったほか、Inline Function(関数のインライン化)リファクタリングが追加され、ベータ版としてリモート開発がサポートされるようになりました。
このバージョンより、保存時に gofmt
を実行する設定がデフォルトで有効になっています。 GoLand 2021.3 では、ARM64 向けの Delve や Show Types(型の表示)オプションなどのデバッガーに対する若干の改善が行われています。
文字列を数値に変換するための新しい 2 つの後置補完と testify
アサーションを使ったテーブルテスト用の新しいテンプレートが追加されているほか、構造体タグの値の補完が改善されています。
これまでと同様に、新しいバージョンの GoLand ではウェブ開発の機能強化が行なわれており、さまざまなデータベース操作用の新機能が追加されています。
対話的に学習したい方は、ウェルカム画面からアクセスできる「What's New in GoLand 2021.3」(GoLand 2021.3 の新機能)チュートリアルをご利用ください。
WSL 内のプロジェクトを開き、そこにある SDK を指定する機能を追加しました。
WSL で新しいプロジェクトを作成する(または既存のプロジェクトを開く)と、GoLand が該当プロジェクトに WSL の Go SDK を使用する必要があることを伝えます。 Go SDK をダウンロードするか、\\wsl$
サブディレクトリにある既存の SDK を選択できます。
gofmt
保存時に gofmt
と GoLand 独自のフォーマッターの両方を実行できる Reformat code(コードの整形)オプションがデフォルトで有効化されるようになりました。
既存ユーザーがこの変更に戸惑わないようにするため、各プロジェクトで 1 回だけ表示される通知を追加しました。 この通知は、Don’t show again(今後表示しない)をクリックするとオフにできます。
Edit actions on save(保存時のアクションを編集)をクリックすると、IDE の Settings(設定)| Tools(ツール)| Actions on save(保存時のアクション)が開き、そこで設定を管理できます。
関数とメソッドに Inline(インライン化)リファクタリングを使用できるようになりました。 これを試すには、関数、メソッド、または呼び出しにキャレットを置き、Ctrl + Alt + N を押します。
Inline(インライン化)リファクタリングを呼び出すと、複数のオプションを含むポップアップウィンドウが開きます。 そのポップアップから、Refactoring Preview(リファクタリングのプレビュー)を開くこともでき、メソッドまたは関数のすべての呼び出しを見つけることができます。
構造体フィールドにタグを追加する際のさまざまな複合語(camelCase、snake_case など)の処理方法を改善しました。
タグの入力を開始すると、GoLand が複数のオプションをリスト表示で提案します。 IDE は選択したオプションを記憶し、その構造体の他のフィールドに対しても同じスタイルをリストの先頭で提案するようになります。
文字列を数値に変換する新しい後置補完を 2 つ追加しました。 ダブルクォート内に数字を入力してからドットを入力すると、GoLand が parseInt
と parseFloat
という 2 つの数値解析オプションを提案します。
Show Usages(使用箇所の表示)機能が改善され、矩形のアイコンをクリックして検出された使用箇所のソースコードプレビューを有効にできるようになりました。
プロジェクトのソースと実行可能ファイルが保存されているリモートマシン上のフォルダーに意味のある名前を指定できるようになりました。 フォルダーを構成するには、Run(実行)| Manage targets(ターゲットの管理) | Additional Settings(追加設定)に移動します。
プロジェクト全体のデフォルト実行ターゲットを設定できるようになりました。 Run(実行)| Manage targets(ターゲットの管理)に移動すると、 Project default target(プロジェクトのデフォルトターゲット)オプションを含むウィンドウが開きます。 プロジェクトに特定のターゲットを選択すると、そのターゲットを使用したまったく新しい構成が作成されます。
SSH Configurations(SSH 構成)に、プロキシサーバーを指定できる新しい HTTP/SOCKS Proxy セクションを追加しました。 このセクションは、Settings(設定)| Tools(ツール)| SSH Configurations(SSH 構成)にあります。 または、現在開いているプロジェクトから Run(実行)| Manage Targets(ターゲットの管理)| ... に移動します。
nil
インターフェースの表現を改善Go のインターフェースには、型とその型の値という 2 つの要素があります。 インターフェースが nil
となるには、これら両方の要素が nil
である必要があります。
int
への nil
ポインターを含む値を持つインターフェースがある場合、その内部の型は nil
ではないため(*int
です)、そのインターフェースは nil
と同等にはなりません。 これはわかりにくいかもしれません。
このようなケースを検出するため、Debug(デバッグ)ツールウィンドウのVariables(変数)タブでインターフェースの表現方法を変更しました。 例えば、内部の型が *int
であるインターフェースがあり、値が nil
である場合、{interface{} | *int} *int(nil)
のように表示されます。
GoLand がデバッガーの Variables(変数)タブにパッケージの完全名を表示しなくなりました。 今後は完全名の最後の部分だけが表示されます。
オブジェクトタイプが Variables(変数)タブの表示スペースを取り過ぎている場合は、タブ領域を右クリックして表示されるメニューから Show Types(型の表示)オプションを無効にできます。 同じメニューをもう一度選択すると、再び有効にできます。
このバージョン以降の GoLand には、ARM64 アーキテクチャ用にビルドされた Delve がバンドルされており、初期状態で Linux ARM でのデバッグが可能になっています。
また、特定のアーキテクチャ用の Delve が GoLand にバンドルされていない場合のエラーメッセージも改善し、 何が問題であるかを明示的に通知するようにしました。
testify
アサーションのテンプレートtestify
アサーションを使用するテーブルテスト用の新しいテンプレートを追加しました。 すでにパッケージで assert
を使用している場合は、Alt + Ins を押して必要なオプションを選択すると、GoLand がアサーションを使用するコードを生成します。
GoLand now has a quick-fix for an inspection that warns you about incorrect formatting of error strings: “Error strings should not be capitalized or end with punctuation”. Alt + Enter を押すと、GoLand が文字列書式の修正を提案します。
エクスポートされていない型を返すエクスポート済み関数を記述している場合、GoLand はその型をエクスポートするクイックフィックスを提案します。
context.TODO()
インスペクション context.TODO()
の使用箇所をハイライトするインスペクションを追加しました。 このインスペクションは、Settings(設定)| Editor(エディター)| Inspections(インスペクション)で有効にできます。 このインスペクションは、記述時点でどの Context
が使用されるべきかが不明瞭であった場合に、context.TODO()
を変更すべきことを通知するリマインダーとして機能します。
//TODO implement me
コメント Implement Methods(メソッドの実装)アクションを使用する際に生成されるテンプレートに //TODO implement me
コメントを追加するようにしました。 この特殊なコメントはエディターでハイライトされ、インデックス化され、TODO ツールウィンドウにリストされるようになるため、未実装のメソッドについてのリマインダーとして機能します。
GoLand でベータ版のリモート開発ワークフローがサポートされるようになりました。
GoLand のウェルカム画面から直接、リモート開発ワークフローをセットアップできます。 または、すべてのリモートバックエンドへのエントリポイントとして機能する新しい JetBrains Gateway アプリケーションを使用することができます。
リモート開発の開始手順については、こちらのページをご覧ください。
GoLand の HTTP クライアントが gRPC リクエストをサポートし、対応する補完機能を提供するようになりました。 GRPC
キーワードでリクエストを開始すると、HTTP クライアントがそれを gRPC リクエストとして処理します。
.proto
ファイルのガターアイコンをクリックすると、HTTP クライアントで自動的に gRPC リクエストを生成できます。
現在のところ、HTTP クライアントは単項およびサーバーストリーミング PRC を実行できます。 通常の HTTP リクエストと同様に、このリクエストの本体とレスポンスはプレーンな JSON ファイルです。
HTTP クライアントの改善点は他にもいくつかあります。詳細は、こちらをご覧ください。
Checkout and Rebase onto Current(チェックアウトして現在のブランチでリベース)アクションを使うと、選択したブランチをチェックアウトし、現在チェックアウトされているブランチでリベースすることができます。 このアクションをリモートブランチでも使用できるようになりました。
送信可能なコミットと作業中のコミットが混在しており、 確実に送信できるコミットのみをプッシュすることを検討する場合があります。
Git ツールウィンドウの Log(ログ)タブで選択したコミットまでのコミットをプッシュできるようになりました。 この操作を行うには、最後にプッシュするコミットを選択し、それを右クリックしてコンテキストメニューを呼び出し、Push All up to Here(ここまでのすべてをプッシュ)アクションを選択してください。
VCS の設定がより見つけやすくなり、構造化されました。 Settings(設定)の Version Control(バージョン管理)ノードに、すべての使用可能な設定がリストされるようになっています。
Debug(デバッグ)ツールウィンドウの Variables(変数)タブで、Evaluate expression(式の評価)機能を使用できるようになりました。
タブをハイライトされた領域にドラッグアンドドロップして、Run(実行)ツールウィンドウを分割できるようになりました。 ウィンドウの分割を解除するには、上部ペインを右クリックし、コンテキストメニューから Unsplit(分割解除)を選択します。
新しい Bookmarks(ブックマーク)ツールウィンドウが追加されました。 今後、F11 ショートカットで重要としてマークしたすべてのファイルとフォルダーはこのウィンドウに表示されます。
2 つのスナップショットの差分をフレームグラフ上で可視化できます。 Shift を 2 回押し、検索バーに「Open Profiler Snapshots(プロファイラーのスナップショットを開く)」と入力します。 リストからスナップショットを開き、同じ操作を繰り返して別のスナップショットを開きます。
次に、片方のスナップショットのタブにある Compare With Baseline(基準と比較)ボタンをクリックします。 そのメニューから、比較対象のスナップショットを選択します。 すると、別の Diff(差分)タブが開き、比較結果が表示されます。
GoLand’s terminal supports the new ConPTY API on Windows. We addressed several problems users were having with the old implementation, which was based on winpty, and enabled PTY on Windows by default.
ConPTY では、組み込みターミナルで 24ビットカラーがサポートされています。
以前はリモートマシンで作業中に GoLand のターミナルで文字を入力する際にレイテンシが発生していたため、IDE がローカルマシンと同等の表示速度で文字を表示することはできませんでした。
この問題は、先行入力を新たにサポートすることで解決できました。 組み込みターミナルがテキストの変更を予測し、それをライトグレーで即時に表示します。
import
ステートメント内の URL をサポートES6 ファイルのインポートパスにクイックフィックスを使用して、リモート ES6 モジュールをダウンロードできます。 このモジュールは、すべての依存関係を含めてダウンロードされます。 この動作を試すには、インポートパスにキャレットを置き、Alt + Enter を押して Download module(モジュールのダウンロード)を選択してください。
HTML でコード補完が機能する仕組みを改善しました。 エディターにタグ名または略語を入力するか、コード補完を呼び出すと、GoLand がすぐに関連性の高い候補を表示します。
以前は、開始山括弧(<
)を先頭に入力しなければ表示されませんでした。 文字エンティティ参照のコード補完も改善されています。
エディターから npm パッケージを最新バージョンに直接アップデートすることができます。 package.json
ファイルを開き、アップデートするパッケージバージョンにキャレットを置いて Alt + Enter を押すと、Update … to the latest version(… を最新バージョンにアップデート)を選択できます。
GoLand にコンマ区切りの要素を別々の行に素早く配置し、必要な場合に 1 行に戻せる JavaScript プロジェクト用のインテンションアクションが追加されました。
セル範囲の Aggregate(集計)ビューを表示する機能を追加しました。 ビューで表示するセル範囲を選択し、右クリックして Show Aggregate View(集計ビューの表示)を選択してください。 1 つの集計値がステータスバーに表示され、どの値に指定するかを選択できます。
エディターを分割して同じテーブルを開くと、そのデータエディターは完全に独立して開きます。 それぞれに異なるフィルターオプションや表示順オプションを設定できます。
WHERE
句と HAVING
句のブール式に対応した新しいインスペクションを追加しました。
明示的にブール式でないように見える式を黄色でハイライトし、そのようなクエリを実行する前に警告を発します。
It works for ClickHouse, Couchbase, Db2, H2, Apache Hive/Spark, MySQL/MariaDB, Redshift, SQLite, and Vertica. その他すべてのデータベースでは、エラーとしてハイライトされます。
データエディターでは、複数の値を選択して対応するデータに移動できます。
GoLand は CSV ファイルの列の型を検出し、データを数値で並べ替えられるようになりました。 以前は、列のデータはテキストとして処理されていたため、期待どおりに並べ替えられませんでした。
filter {}
と sort {}
の補完MongoDB コレクションでデータをフィルタリングする際に、コード補完が機能するようになりました。
データエディターのフォントを IDE の他の部分とは別に設定できます。 フォントを選択するには、Settings(設定)| Tools(ツール)| Database(データベース)| Data views(データビュー)| Use custom font(カスタムフォントの使用)に移動してください。
スクリーンリーダーを使った作業をより楽に行えるように、アクセシビリティに関する問題をいくつか解決しました。 マウスオーバーで表示されていたツールウィンドウウィジェットのポップアップとクイックドキュメントのポップアップを無効にしています。
macOS でのアクセシビリティサポートも改善されました。 VoiceOver のフォーカスに関する複数の問題を解決し、スクリーンリーダーを使ってプロジェクトを作成できるようになっています。 コーディング中の集中力低下を最小限に抑えるため、音声付きヘルプツールチップの数も減らしました。