GoLand 2024.1 の新機能

GoLand 2024.1 にはいくつかの重要な機能が追加されています。

  • 行全体コード補完が実装されました。ローカルで実行される LLM を使用した AI 補完がすべての GoLand ユーザーを対象に無料提供されるようになりました。
  • インデックス作成とハイライト表示のパフォーマンスが大幅に改善されています。
  • AI Assistant をさらに改善し、コード補完やドキュメント生成に関する追加オプションの導入などの改良を行いました。
  • Dev Containers のサポートが早期アクセスで公開されましたが、このイテレーションではうれしい新機能がいくつか提供されています。
  • Go 1.22 アップデートのサポートが追加されました。

この新バージョンでは複数の UX と内部ツールが強化されています。 それでは始めましょう!

行全体コード補完

GoLand 2024.1 ではローカルで実行されるコンテキスト認識型ディープラーニングモデルを使用し、コード行全体を自動補完する行全体コード補完という新機能が導入されています。 外部サーバーにデータを送信することなく、お使いのデバイス上でローカルに作業しながらコーディング速度と効率を改善するのに役立ちます。 この機能は GoLand 2024.1 のすべてのユーザーに対してバンドル提供されます。 AI を体験するのにぴったりです! わくわくしてきましたか? この続きは専用のブログ記事をお読みください!

この機能の制御と行全体の候補を得たい言語の指定は、Settings(設定)| Editor(エディター)| General(一般)| Code Completion(コード補完)| Machine Learning-Assisted Completion(機械学支援補完)で行えます。

パフォーマンス改善

インデックス作成パフォーマンスの改善

GoLand のインデックス作成が大幅に高速化されました。 平均 30% 前後の高速化を実現できています。 当然ながら、実運用での結果はプロジェクトとハードウェアの仕様によってユーザーごとに異なります。 あなたの測定結果をぜひお知らせください! ここでは Gin フレームワークを使ってインデックスを作成した場合の画像を示しています。

インデックス作成中のハイライトの追加

この強化により、参照のハイライトが IDE 起動時点から機能するようになりました! この 2 つの例をぜひご覧ください。一目瞭然です。

AI Assistant

JetBrains はより価値の高い機能とアクションを提供できるよう、AI Assistant の開発に継続的に取り組んでいます。 このリリースでは、GoLand の既存の AI 機能に 2 つの機能強化を実装しました。 ぜひお試しください!

クラウドベースの構造体とインターフェースの補完

2023.3 では、関数とメソッドのブロックに対応したインライン補完が導入されました。 2024.1 では、この補完が構造体とインターフェース宣言でも有効になります。 型宣言内でコードの補完候補が提供される場合、親構造体と参照と共に使用箇所のコンテキストが考慮されます。 これにより、AI ベースの補完の関連性が向上します。

構造フィールドとインターフェースメソッドのドキュメント生成

GoLand で型、インターフェースメソッド、構造体フィールドのすべてに対してドキュメントが生成されるようになりました。 ドキュメントを生成するには、フィールド定義内の任意の場所にキャレットを置き、Write Documentation(ドキュメントの作成)AI アクションを選択します。 フィールドの定義の前で //を入力すると候補を呼び出すこともできます。

コミットメッセージの生成など、特定の AI アクションのプロンプトをカスタマイズできるようになりました。 これにより、より個人に合った適切な結果を得られます。

バージョン 2024.1 より、AI チャットが生成したコードスニペットを含むファイルをエクスポートできるようになりました。 チャットで質問する際にファイルを添付し、追加のコンテキストを提供できるようにもなっています。

リモート開発

2024.1 では IDE をリモート開発に使用する場合のハイライト表示やレンダリングが改善され、リモートで開発する場合でもローカルでプログラミングする場合と同様にスムーズな操作感を得られるようになりました。 クラウドでのハイライト表示と補完がローカルコードベースとほぼ同等の速度で行われることをぜひお確かめください。

さらに、IDE クライアントからリモートプロジェクトを直接管理できるようになり、新しいリモートプロジェクトを作成したり既存プロジェクトを開いたりできるようにもなっています。

Dev Containers

「ようこそ」画面から(ローカルディスクまたは VCS の)Dev Container を実行できるようになりました。 これまではプロジェクトを先に開いておく必要がありました。

Dev Containers にすべての一般的なプログラミング言語に使用できるファイルテンプレートが付属するようになりました。

ユーザーが JetBrains バックエンド IDE(GoLand や CLion など)を devcontainer.json ファイルで直接構成できる設定が追加されています。

GoLand バージョン 2024.1 では、devcontainer.json ファイルがプロジェクトのどこに格納されていても認識されるようになりました。 これまでは ~/.devcontainer フォルダーに格納する必要がありました。

Go 1.22 アップデートのサポート

Go 言語は絶えず進化し続けていますが、JetBrains は可能な限り迅速にすべての新しい言語機能をサポートするように努めています。

整数と関数に対する range のサポート

Go 1.22 では、従来の for ループを使用するよりも簡潔な方法で整数と関数を簡単に反復処理できる機能を導入しました。

Go ワークスペースのベンダリングサポート

ベンダリングはプロジェクトで使用される依存関係をプロジェクトリポジトリに格納できるようにすることで、そのような依存関係をより細かく制御できるようにするものです。 Go 1.22 では、ワークスペースのコマンドでワークスペースの依存関係に含まれる vendor ディレクトリを使用できます。 GoLand がこの改善をサポートするようになりました。

データフロー解析(DFA)の更新

データフロー解析は GoLand 2023.3 で導入されましたが、2024.1 ではこの機能がデフォルトでオンになるように改良しました。 GoLand の DFA は現在、Constant conditions detection(定数の条件の検出)、Potential nil dereference(潜在的な nil 逆参照)、および Error may be not nil(非 nil の可能性があるエラー)の 3 つのインスペクションをサポートしています。 これらの開発の詳細は、こちらのブログ記事をご覧ください。

Terraform サポートの強化

開発者、サイトリライアビリティエンジニア(SRE)、および DevOps スペシャリストを対象に Terraform によるインフラストラクチャのコード化(Infrastructure as Code)のサポートを大幅に改善しました。 この更新には、インフラストラクチャの作成、管理、およびスケーリングのプロセスを単純化する一連の新機能と強化が含まれます。

terraform init の実行の提案

Terraform コードファイルで作業ディレクトリを初期化するには、まず terraform init を実行する必要があります。 この手順は見落としがちで、Terraform 自体がエラーメッセージを吐くだけでなく、コードの自動補完が不完全になったり、ドキュメントが一部しか表示されなくなったりする原因になります。 この問題を回避するため、IDE が明示的に terraform init の実行を提案するようになりました。

Terraform レジストリのサードパーティプロバイダーのサポート

Terraform プラグインのコード補完機能が 3,900 を超えるサードパーティ Terraform プロバイダーに対応できるように拡張され、コードを効率よく記述しやすくなりました。 また、これらの各プロバイダーと特定バージョンの最新のドキュメントを直接 IDE 内で表示することができます。

このため、IDE から離れることなく、新しい Terraform プロバイダーをより素早く調べて機能を理解することができます。

Terraform テンプレート言語(tftpl)のサポート

Terraform のテンプレート言語(tftpl)のサポートを公開しました。構成ファイルやスクリプトのほか、ウェブサーバー、ネットワーク、サービス構成などのあらゆるプログラムコードでワークフローを強化できます。 テンプレート作成がさらに簡単になったのです! このリリースではテンプレート内の値を実行時に動的に挿入できるようになり、特定の使用に対するテンプレートのレンダリングプロセスが合理化されています。

Terraform のテンプレート言語は変数のテンプレート化と制御フロー要素をサポートするだけでなく、リストとマップに加えて JSON 形式と YAML 形式を生成する機能も含まれています。

UX およびその他の機能

新しいターミナル

ターミナルベースのタスクをよりシンプルかつ便利にするため、GoLand 2024.1 にはビジュアルと機能の両面の強化を組み込んで全面的に見直されたターミナルが備わっています。 便利な履歴やブロック間での簡単な移動、および使用可能なすべてのコマンドのヒントを提供します。

新しい Terminal(ターミナル)ツールウィンドウは新しい IDE とシームレスに統合されており、新しくなった外観に適合しています。また、コマンド、パス、引数、およびオプションをサポートするコマンド補完機能も提供しています。 詳細は、専用のブログ記事をご覧ください。

IDE 全体の表示を縮小するオプション

GoLand 2024.1 には IDE 全体を縮小表示するオプションが導入されています。 当初、拡大縮小の範囲には 100%~200% の拡大表示オプションしかありませんでした。 現在のバージョンでは、IDE を 90%、80%、または 70% に縮小できるようになっています。

エディターの行固定表示

大きなファイルでの作業と新しいコードベースの参照を簡単にするため、エディターで行を固定表示できるようにしました。 この機能を使用すると、クラスやメソッドの開始部などの重要な構造要素をエディターの上部にピン留めした状態でスクロールできます。 そうすれば常に表示範囲が固定され、ピン留めされた行をクリックして迅速にコード内を移動できます。

VCS 関連の更新

エディター内コードレビュー

GoLand で GitHub と GitLab ユーザーがより合理的かつアジャイルなコードレビューワークフローを実践できるようになりました。 新しいレビューモードの実装により、作成者とレビュー担当者がエディター内で直接シームレスに対話できるようになりました。 詳細はこちらをご覧ください

Git ツールウィンドウの CI チェックステータス

Git ツールウィンドウの Log(ログ)タブに新しい列を導入し、CI システムが実行した GitHub コミットチェックの結果を簡単に確認できるようにしました。 タブをクリックすると、CI チェックの全詳細を表示できます。

保留中の GitHub 更新に対する視覚的インジケーター

コードレビューワークフロー内の保留中の更新を示唆する視覚的なインジケーターを導入しました。 注意が必要な変更がある場合、青いドットのバッジがツールウィンドウのアイコンに表示されます。 また、未確認のプルリクエストには青いドットが付くため、コードレビュープロセスの更新を見逃すことがありません。

ウェブおよびデータベース関連の機能強化

GoLand は WebStorm と DataGrip IDE の更新を継承します。 ウェブ開発またはデータベース操作に関する更新と機能に関心がありますか? ご確認ください!