GoLand 2022.2 では、ジェネリクスおよび go.work 関連の新機能が提供されています。 また、ファズテストのサポートも追加されました。
SQL ステートメントが自動検出されるようになったため、包括的なコード補完機能を使用できるようになりました。
GoLand が WebSocket 接続をサポートするようになり、HTTP と WebSocket プロトコルでの GraphQL クエリの送信が可能になりました。
対話的に学習したい方は、ウェルカム画面からアクセスできる「What's New in GoLand 2022.2」(GoLand 2022.1 の新機能)チュートリアルをご利用ください。
any に置換するインテンションアクションGoLand に空のインターフェースの使用箇所を型または型制約として報告するインスペクションが追加されました。
また、interface{} を any に置換するインテンションアクションも追加されています。 インテンションアクションのポップアップから、ファイル内にあるすべての空のインターフェースを置換できます。
空のパラメーターリストを持つ型パラメーターがエラーとして報告されるようになりました。 このような型パラメーターを削除するクイックフィックスが追加されています。
未使用の型パラメーターを報告する新しいインスペクションが追加されました。 このような型パラメーターはグレー表示されていますが、マウスポインターを合わせると警告が表示されます。
インターフェースとメソッドの直和 (union) を使用しようとすると、IDE がエラーを報告するようになりました。
型パラメーターを制約として使用しようとすると、GoLand がエラーを表示します。
メソッドを作成中にレシーバーを追加すると、GoLand が型パラメーターの識別子を挿入します。
ジェネリクスの「Find Usages」(使用箇所の検索)に「Type parameter declaration」(型パラメーター宣言)グループが新たに追加されました。
GoLand からファズテストを実行できるようになりました。 ファズテストの横のガターにある緑色の三角形のアイコンをクリックすると、テストを実行するための各種オプションが表示されます。 テストが失敗すると、失敗したシードコーパスエントリがファイルに書き込まれ、testdata フォルダーのパッケージディレクトリに配置されます。
このファイルへのパスは、コンソールにもクリック可能なリンクとして表示されます。 そのリンクをクリックすると、IDE でファイルが開き、ファイルの上部に緑色の三角形アイコンが表示されます。 このアイコンをクリックすると、失敗したシードコーパスエントリを使って go test が実行されます。
GoLand からは、通常の単体テストと同様にファズテストを実行することもできます。
ファジングをサポートしないように Go SDK を構成した場合、GoLand のガターに実行ボタンが表示されないようになりました。 現在の Go SDK がファジングをサポートしていない場合に Go SDK を変更するクイックフィックスが追加されています。
use ディレクティブをグループ化するクイックフィックスgo.work ファイル内の複数の use ディレクティブを 1 つのディレクティブにグループ化するクイックフィックスが追加されました。
fmt.Appendf のサポート fmt.Appendf のサポートが追加され、GoLand が文字列内の書式動詞を認識するようになりました。 そのため、Add a format string argument(書式文字列引数の追加)インテンションアクションなど、書式設定関数が提供するすべての機能を Appendf 関数で使用できるようになりました。
unix ビルド制約のサポートGoLand がすべての Unix または Unix 系システムを認識する新しい unix ビルドタグをサポートするようになりました。
loong64 の追加 Go 1.19 では、loong64 という新しいアーキテクチャが導入されています。 このアーキテクチャは、Settings(設定) | Go | Build Tags & Vendoring(ビルドタグとベンダリング)の Arch(アーキテクチャ
)に追加されています。
クイックドキュメントを改善しました。
chan キーワードにマウスポインターを合わせたとき、チャンネルの送受信操作時、チャンネルの型へのすべての参照の 3 つのタイミングまたは場所でツールチップに表示されます。 iota のクイックドキュメントに、使用方法に関する追加情報が含まれるようになりました。 定数が iota グループの一部である場合、制約が暗黙的に定義されている場合でも、補完ボックスにその値が表示されます。 ~/go/pkg/mod の cache サブディレクトリには IDE の正常動作に必要な情報が含まれていないため、GoLand がそのディレクトリをスキャンしなくなりました。 このフォルダーは非常に大きい場合があるため、スキャンから除外することでパフォーマンスが向上すると考えられます。
go:linkname ディレクティブのサポート 以下の go:linkname コンパイラーディレクティブのサポートが追加されました。
//go:linkname localname [importpath.name]
このディレクティブは、ソースコードで localname として宣言されている変数または関数のオブジェクトファイルシンボル名として importpath.name を使用するようにコンパイラーに指示します。
iota の非標準的な使用箇所のインスペクションGoLand に、iota が非標準的に使用されていることを警告する新しいインペクションが追加されました。
iota とその他の組み込み定数に対し、Reserved word used as name(名前として使用されている予約語)というインスペクションも有効になっています。 このインスペクションは、iota、true、または false という定数に値を代入しようとした場合にトリガーされます。
Go のドキュメントでは、特定の型のすべてのメソッドには値レシーバーまたはポインターレシーバーのいずれかを指定することが推奨されています。
GoLand に、型に値レシーバーとポインターレシーバーの両方に対するメソッドがあることを警告する新しいインスペクションが追加されました。
SQL ステートメントが自動的に検出され、特定のパターンに一致するすべての文字列リテラルに言語が注入されるようになりました。 文字列リテラルに言語を注入すると、リテラルを編集する際に包括的なコード支援を利用できます。
Settings(設定)| Editor(エディター)| Language Injections(言語インジェクション)では、パターンの検索と編集、および独自のパターンの追加を行えます。
GoLand が実行/デバッグ構成、アプリケーション、スクリプト、コマンド、タスクを素早く起動し、最近のプロジェクトを開ける Run Anything(なんでも実行)アクションをサポートするようになりました。 このアクションを使用するには、Ctrl を 2 回押して検索バーに入力を開始します。
GoLand が WebSocket 接続をサポートするようになりました。 リクエストを作成できるだけでなく、メッセージの送受信も行えます。
GoLand が初期状態で HTTP および WebSocket プロトコルを介して GraphQL クエリを送信できるようになりました。 http:// と https:// では単純な HTTP リクエストが使用され、ws:// と wss:// は WebSocket 実行プログラムに処理が委譲されます。
ガターの再生アイコンから実行環境を選択する方法が追加されました。 この機能を有効にするには、Run with(実行)コンボボックスから Select Environment Before Run(実行前に環境を選択する)オプションを選択してください。
GoLand の ウェルカム画面にある Remote Development(リモート開発)セクションを更新しました。 ここでは、バックエンドオーケストレーションに優先するメソッドを選択できます。 また、ポート転送機能をターミナルで実行されているプロセスでも使用できるようになりました。
新しいリモート開発機能の詳細については、こちらのブログ記事をご覧ください。
JetBrains Spaceは、開発環境を通じて JetBrains IDE のプロジェクト管理、課題追跡、Git ホスティング、コードレビュー、継続的インテグレーション、パッケージリポジトリ、リモートバックエンドオーケストレーション機能を提供する包括的なソフトウェア開発プラットフォームです。
Space の連携機能が GoLand にバンドルされました。 この高度な連携機能により、Space プロジェクトを参照してリポジトリをクローンし、直接作業を開始できます。 変更の準備ができたら、IDE 内からマージリクエストを作成してコードレビューを実行できます。
リモート開発用の Space 開発環境を GoLand で直接管理できるようになりました。
IDE が Space 組織に接続されると、すべての既存の開発環境が同期されます。 リポジトリとブランチ用の新しい開発環境を作成して、すぐにコーディングを開始できます。 作業が終了したら、開発環境を休止状態にしてリソースの消費を節約するか、そのまま削除することが可能です。
macOS ユーザー向けに、開いているすべてのプロジェクトウィンドウを単一のウィンドウ内のタブに変換してマージする機能が導入されました。 これを行うには、Window(ウィンドウ)| Merge All Project Windows(すべてのプロジェクトウィンドウをマージ)に移動します。
エディター内全体のフォントサイズを変更するキーボードショートカットが導入されました。 フォントサイズを大きくするには Alt+Shift+. を押し、小さくするには Alt+Shift+, を押します。
エディター内のコード表示を拡大・縮小する際に、現在のフォントサイズとサイズをデフォルトに戻すオプションを表示するインジケーターを使用できるようになりました。
ブックマークのオプションの説明を追加できるように、Description(説明)フィールドを Add Mnemonic Bookmark(ニーモニックブックマーク)ダイアログに組み込みました。 ニーモニックブックマークを追加するには、ブックマークする行の横のガターを右クリックし、コンテキストメニューから対応するオプションを選択します。 または、Ctrl+F11 ショートカットを使用することも可能です。
Cloning repository(リポジトリをクローン中)進捗バーが、Projects(プロジェクト)リストに表示されるようになりました。
コード補完ポップアップの縦三点リーダーメニューボタンからコード補完設定にアクセスできるようになりました。
コード補完時の IDE による丸括弧の自動挿入を切り替えるオプションが追加されました。
インスペクションのハイライトスタイルは、Settings(設定)| Editor(エディター)| Inspections(インスペクション)に追加された新しい Highlighting in editor(エディター内のハイライト)ドロップダウンメニューを使って調整できます。
このメニューにより、インスペクションをさらにカスタマイズできるようになります。 たとえば、特定のインスペクションの重要度レベルを Warning(警告)に設定し、ハイライトスタイルを Error(エラー)に変更することが可能です。
新しい Copy Docker Image(Docker イメージのコピー)アクションを使用して、Docker デーモンから別の Docker デーモンにイメージをコピーできるようになりました。このアクションは、イメージをファイルに保存して、選択された接続にプッシュします。
GoLand が IDE の再起動後に Docker へ自動接続できるようになりました。 この新しい設定は Settings(設定)| Advanced Settings(高度な設定)| Docker にあり、デフォルトで有効になっています。
Colima と Rancher との統合により、GoLand がさらに多くのオプションで Docker デーモンへの接続を確立できるようになりました。
複数の CSV ファイルを選択し、まとめてインポートできるようになりました。
データベースを操作する際に、Playground(プレイグラウンド)と Script(スクリプト)の 2 つのファイル解決モードを使用できるようになりました。
Playground(プレイグラウンド)は未接続のクエリを含む場合、Script(スクリプト)はシーケンスロジックを含むクエリがある場合に使用します。
GoLand がシステムのトラストストアから信頼済み SSL 証明書をインポートできるようになりました。 エンタープライズ環境に固有のカスタム証明書が自動的に使用されます。 その他の操作は必要ありません。 初期設定の状態で、すべて動作します。
JSON および YAML ファイルでは、http:// と https:// で始まる値に Web 参照が自動的に挿入されるようになりました。 Web ブラウザーでこれらのリンクを開き、HTTP クライアントでリクエストを生成できます。