GoLand 2019.3では、CPU消費量の削減と動作の高速化、Go Modulesのサポート強化、新しいクイックフィックスの追加、リファクタリングの強化が提供されます。 Evaluate Expressionにおけるembedされたフィールドのメソッド呼び出し対応、Mozilla rrを使用したアプリケーションのリモートデバッグサポートも追加されました。
また、すべての新規プロジェクトに対するGlobal File Watcherの有効化、MongoDBとの連携などを行えるようになりました!
今年の夏にGoLand 2019.2をリリースして以来、当社はGoLandの高速化とCPU消費量の削減に懸命に取り組んできました。 主なパフォーマンス改善には、起動時間を短縮化したことが挙げられます。IDEが内部的に必要なものをすべてを準備している間に、ウェルカム画面を表示し、プロジェクトのインデックス作成を行うようになりました。
この結果はプロジェクトの規模やお使いのデバイスの使用年数、RAM、ディスク容量にとって変わる場合があります。 今後もこの取り組みを続ける予定で、今後のリリースでは起動時間のさらなる高速化を期待できます。
GoLand 2019.3では、go.mod
ファイルに対応したシンタックスハイライトとナビゲーションを提供しています。 あるdependency(依存パッケージ)のインポートパス上で(macOSの場合は⌘+B、Windows/Linuxの場合はCtrl+B)キーを押すと、GoLandがProject View内にあるそのソースまでナビゲートします。
また、Project ViewではGo Modulesのインポートパスが最後の部分だけではなく、完全なインポートパスで表示されます。 各Goモジュールのバージョンは、インポートパスよりも色調を抑えたフォント色で表示されており、容易に確認できるようになっています。
デバッガのEvaluate Expression(式を評価)で、embedされたフィールドのメソッドを直接呼び出せるようになりました。
Goで記述された多くの本番環境のサービスはLinux上で稼働しています。それらに対して、Mozilla rrは再現が困難なバグの調査を支援します。 Mozilla rrを使ったデバッグはGoLand 2018.3からサポートされていますが、Linuxを実行している開発用マシン上でしか動作していませんでした。 このリリースからは、Linuxマシン上でデバッグサーバーを起動し、macOSやWindowsからリモートでトレースをデバッグできるようになりました。 そのためには、以下の手順に従ってください。
dlv --headless --api-version 2 -l localhost:2345 replay /path/to/trace/dir /path/to/binary
Mozilla rrはLinuxマシンでのみ利用できます。
未使用のパラメータがある場合、GoLandがその名前と型の両方を削除可能な場合には両方を、その型がメソッド仕様の実装に使用されている場合には名前のみをハイライトするようになりました。
後者の場合は、2種類のクイックフィックス(Delete parameter namesまたはRename to_)のいずれかを選択できます。 関数型として使用されている関数には同じ動作が適用されます。
また、一度に未使用のパラメータをすべて削除できるようになりました。 Alt + Enter を押し、Delete all unused parameters(未使用のパラメーターをすべて削除)クイックフィックスを使用してください。
GoLandは不足な関数やメソッドが関数の型で使用されている場合にそれらを作成するクイックフィックスを提供しています。 Alt+Enterを押し、Create method/functionを選択するだけです。
GoLandは、プロジェクト内の任意のファイルで Alt + Enter を使用して、使用されているエイリアスに基づいてパッケージをインポートすることを提案します。
Change SignatureがParametersタブとResult parametersタブでパラメータの型を常に表示するようになりました。 Signature Preview内に表示される結果パラメータで連続した型指定を省略するには、新しいReuse typesチェックボックスにチェックを入れてください。
また、2つの新しいインテンションアクションが追加されています。1つはパラメータの定義を単一の宣言にマージするReuse signature typesで、もう1つはAlt+Enterで各パラメータに型を追加するExpand signature typesです。
Extract VariableとRenameで名前の提案をさらに改善しました。 例えば、型エラーの式の場合はerr
が、context.Context
の場合はctx
が提案されます。
GoLandのコードインスペクションの対象がより絞り込まれました。 個々のコード片に最も関連性の高いクイックフィックスやインテンションアクションを表示できるよう、Alt+Enterを使用してコンテキストメニューを呼び出した際にコードエディタで検出された問題をハイライト表示する範囲を縮小しました。
ルーンリテラルレキサーに対し、以下のような複数の改善を実施しています。
Goでは短いvar宣言の左側で既存の変数を使用できます。 そのため、似たような2つの構文が異なる意味を持つ場合があります。 このような状況を分かりやすくするため、このような再代入に対するシンタックスハイライトを導入しました。
GoLand 2019.3では複合リテラルコードを折りたたむことができます。 コード片の折りたたみや展開は、コードの折りたたみ用のトグルを使用するか、所定のキー(Windowsの場合はCtrl+数字キーのマイナス/Ctrl+数字キーのプラス 、macOSの場合は⌘+数字キーのマイナス/⌘+数字キーのプラス)を押してください。 デフォルトのコードの折りたたみ動作をは、Settings/Preferences | Editor | General | Code Foldingで設定できます。
ライブテンプレート「for」と「forr」で適切な変数名が提案されるようになりました。 例えば、インデックスの場合はi
やindex
のような名前が提案され、値の場合はs
、string
、line
が提案されます。
ライブテンプレートの meth は、レシーバー名のコード候補を提供するようになりました。
Find(macOSの場合は⌘+F、Windows/Linuxの場合はCtrl+F)を使用すると、選択範囲内のみを検索できます。 エディタ内で必要なコード片を選択してFindを呼び出すだけで、IDEが選択範囲内のみを検索します。 ファイル全体内の検索に簡単に切り替えるには、⌘+F/ Ctrl+Fを2回押すか、バーにあるIn Selectionオプションを切り替えてください。
ファイルマスクを使用してFind in Pathダイアログを検索する際、GoLandがそれに応じて検索結果にファイル拡張子を表示するようになりました。 これにより、同じ名前でもファイル拡張子が異なるファイルを簡単に区別できるようになりました。
GoLand 2018.2では、ProjectとGlobalを使用して異なるプロジェクト間でFile Watcherの設定を共有できるオプション(Global File Watcher)を追加しました。
しかし、相変わらず新規プロジェクトを作成するたびにこのWatcherを有効化しなければなりませんでした。 このリリース以降は、作成または開くすべての新規プロジェクトでデフォルトでFile Watcherを有効にできるようになりました。
FileメニューでOther Settings | Settings for new projectsを選択し、Tools | File Watchersに移動してから新しいGlobal File Watcherを追加します。その後、その隣にあるチェックボックスを選択すると、そのGlobal File Watcherをすべての新規プロジェクトで有効化することができます。
プロジェクトを完了させて納期に間に合わせる必要がある一方、現在ご利用中の製品に関する新機能ページ、リリースページ、ならびにブログ投稿を読む暇がないことはよくあるかと思います。 そのため、ご都合の良い時にGoLandの機能を学習できるチュートリアルを追加しました。
Tutorials(チュートリアル)はウェルカム画面のプロジェクトリストの上にあります。 IDEを新バージョンにアップグレードすると、新リリースの機能を紹介するレッスンが表示されます。 または、任意のプロジェクトから対応するツールウィンドウを使ってTutorialsにアクセスできます。
Hierarchyツールウィンドウは、呼び出し先のメソッド階層を解析するための新しいオプションを提供します。 また、選択したメソッドの呼び出し元と呼び出し先を切り替える専用のボタンを2つ追加しました。 さらに、メニュー内で専用のボタンをクリックしてツリー内の要素をアルファベット順に並べ替えできるようになりました。 Tool WindowsリストでHierarchyツールウィンドウを表示するには、先に階層を構築してからNavigate | Call Hierarchy or Navigate | Type Hierarchyに移動してください。
GoLand 2019.3では、IDEを再起動せずに任意のテーマやキーマッププラグインをインストール・アンインストールできます。
ESCを使用する代わりに、エディタにフォーカスを戻すアクション用のカスタムショートカットを設定できます。 Preferences/Settings | KeymapでFocus Editorアクションを探して右クリックし、ドロップダウンからAdd Keyboard Shortcutを選択してください。
スクロールバーの視認性を向上させるオプションを追加しました。 このオプションを使用するには、Preferences/Settings | Appearance & Behavior | AppearanceでUse contrast scrollbarsチェックボックスを選択してください。
CloneダイアログはVCS | Get from Version controlの下にあります。 このダイアログからログインすると、またはログイン済みの場合、アカウントや組織別にグループ化されたすべてのリポジトリのリストをすぐにプレビューできます。
merge、rebase、cherry-pick操作を実行中に発生する競合をより簡単に調査できるようになりました。 Show Detailsリンクをクリックするだけで、最終的なコードの状態を引き起こしたコミットのリストを取得できます。また、Mergeダイアログに変更対象のソースに関するより詳細な情報が表示されます。
GoLand 2019.3はMongoDBの基本的なサポートを提供しています。 以下を行えるようになりました:
接続エラーを調査しやすくなりました。 接続に失敗した際はIDE内の専用ボタンをクリックするだけで、Google検索エンジンを使ったエラーの検索結果に遷移できます。
HTMLファイル内でBootstrapや別のCSSライブラリを使用し、それをCDNにリンクしている場合、当該ライブラリのソースをプロジェクトに追加することなくそのクラス名を補完できるようになりました。
JavaScriptやTypeScriptで新しい変数やパラメータの名前を追加する際、使用中のプロジェクト、標準ライブラリ、および依存関係で定義されているクラス、インターフェース、type aliases(型エイリアス)の名前に基づいた名前が提案されるようになりました。
新しい変数、関数、クラス、インターフェースの場合は、同じ範囲で使用済みであるものの、未定義になっている名前も提案されます。