関数コールのサポート
プログラム実行中の特定の時点において式内部で起こっていることを詳細に検査できます。この機能は、Delve および Go Runtime からの試験的な関数コールのサポートであることにご注意ください。関数コールサポートにおいてバグや問題を見つけた場合は、JetBrains 社の課題トラッカー までご報告ください。
改善された Default & Darcula カラースキーム
GoLand 2019.2 では Default と Darcula カラースキームを強化し、コードハイライトにより意味づけが行われました。
これによりコードの可読性が上がり、ロジックをより素速く理解しやすくなるでしょう。変数とパッケージ名を簡単に区別できたり、ビルトインのコードの構文と自身の構文の区別、型変換と関数コールも簡単に区別できます。メソッドのレシーバと関数コールは独自の色を持つこともできます。従来どおり、テイストは Settings/Preferences | Editor | Color Scheme で変更できます。
Debugger のアップデート
String() メソッドを使用した変数の詳細情報
デバッガでは Variables ペイン内にString()
, Error()
, DebugString()
メソッドの実装の結果を表示するようになりました。呼び出しのない単一の return ステートメントのメソッドをサポートしています。
特定の型を読みやすく表示
GoLand 2019.2 では time.Time
, time.Duration
から派生した構造体の値、および人間が読めるフォーマットの net.IP 型をデバッガの Variables ペインに表示するようになりました。
整数のデフォルトフォーマット
デバッガ内で整数の値のデフォルトの表示方法を2進数、10進数、または16進数から選択できます。表示フォーマットは Settings/Preferences | Build, Execution, Deployment | Debugger | Data Views | Go で設定してください。
Go 1.13 機能をサポート
GpLand 2019.2 はシフトカウントとしての数値リテラルおよび符号付き整数に対応しました。これらの変更点は Go 2 に向かうステップにも関連します。 詳細はこちらのブログをご覧ください。
GoLand のコードハイライトはいかなるミスも警告し、コンソールに出力が正しく表示されます。
新しい Go 1.13 の機能および GoLand 2019.2 でのサポート方法詳細はこちらの記事をご欄ください。
Postfix Completion テンプレートのカスタマイズ
GoLand 2019.2 ではカスタムで Postfix Completion のテンプレートを作ることができます。
Settings/Preferences | Editor | General | Postfix Completion に移動し、+ をクリックして、Go を選択するとテンプレートを定義できます。そのテンプレートを適用するスコープも選択してください。
カスタムテンプレートを作成する方法は、こちらの記事をご覧ください。
加えて、事前に用意された新たな Postfix Completion テンプレート aappend があることにも気がつくと思います。 ビルトインの append 関数コールを先頭に追加し、この式に結果として割り当てられます。
Change Signature に基づくクイックフィックス
Change Signature リファクタリングに基づく複数のクイックフィックスを搭載しました。例えば、Alt+Enter を押下すると、自動的に関数コールへのパラメータを推測し追加できます。またはシグネチャ内で見当たらない return パターンを追加できます。
return に関する抽出メソッドリファクタリング
Extract Method リファクタリングは return ステートメントがあるコードを処理できるようになりました。常にコードに return が存在するのであれば、そのまま抽出されます。return のない実行パスが含まれる場合は、抽出メソッドは戻り値として追加の boolean のフラグを作ります。フラグは呼び出し側で簡単に return として動作するよう利用されます。
コード補完の改善
レシーバがなくてもコード補完でレシーバのメンバーを提案するようになりました。this
や self
のようなレシーバ名は推奨されません。結果としてメソッドは異なるレシーバ名を持ちます。このコード補完機能を使うことで違いを無視できます。
賢い Go Modules/dep 連携
GoLand 2019.2 では、プロジェクトが Go Modules または dep を利用していることを検出すると、自動的に Go Modules/dep 連携を有効にしてくれます。以前は GOPATH のインデキシングを無効化し、Go Modules/dep 連携を有効化する通知をするのみでした。これでは不十分で通知を見逃したり無視してしまったりということがあり、プロジェクトの構成が完了していない状態になりがちでした。
うまく機能しない場合は、Settings/Preferences | Go | Go Modules (vgo) で連携をいつでも無効化できます。
コードインスペクション
冗長な型変換
Redundant type conversions と呼ばれるコードインスペクションによってプロジェクトはより読みやすく整理されます。省略できる冗長な型変換について警告してくれます。
リテラル内の slice インデックス検証
複合リテラル内の slice インデックス検証機能を追加しました!これによりプロジェクトをコンパイルする前に、インデックスが負ではない整数定数であるべきことをエディタが警告してくれます。
コード編集
エスケープシーケンスに対応
文字列リテラル内のエスケープシーケンスサポートが完全に搭載されました。
- コードハイライト
- 潜在的な問題を警告するインスペクション
- エスケープシーケンスの場所を理解したスマート編集
- より正確になったスペルチェック
また、フォーマットされたプレースホルダは異なる色でハイライトされるようになりました。このため長い文字列で簡単に見つけることができるようになりました。色は Settings/Preferences | Editor | Color Scheme | Language Defaults | String | Escape Sequence | Valid でカスタマイズできます。Go言語 だけであれば、Settings/Preferences | Editor | Color Scheme | Go | String | Valid escape で色をカスタマイズしてください。
フィールドを埋めるアクション
構造体のフィールドを簡単に埋められるようになりました。まず、専用ウィンドウ内でフィールドを選択できます。2番目に生成された値が編集可能になります。最後に、このアクションはコード補完を通しても利用可能です。
改善された Extend Selection
Extend Selection により、空行で区切られた行からコードブロックまで(メソッドの本体全体を選択する代わりに)意味的に正しい方法でコードを拡張するようになりました。
UI の強化
New の新しい見た目 | File ダイアログ
New | File ダイアログがポップアップになり、作成される可能性のあるファイルタイプの一覧が表示されるようになりました。 以前は選択するために一覧を広げる必要がありましたが、現在は利用可能なオプション全てが直接参照できます。
改善されたプラグインページ
GoLand は Plugin の詳細を表示するようになったため、各種プラグインの詳細ページを1つ1つオープンする必要がなくなりました。歯車アイコン配下に新しいオプションを追加し、ダウンロードしたプラグインの無効化または有効化を一度に実施できるようにしました。‘Update’ ボタンは Installed タブ内のプラグイン名の近くに配置しました。Updates タブは必要がなくなったため削除しました。
整理された Find ツールウィンドウ
Find ツールウィンドウでは、あまり使われないアイコンをグループ化し、他は削除しました。
便利になった一般的な変更点
スコープの選択肢オプション
Recently Changed や Recently Viewed Files、Files in Previous Search Result、Selection のような新しいスコープ全てをスコープの選択肢に追加しました。また、Data Sources スコープも選択できるようにしました。これに加えて、Rename refactoring のスコープの選択もできるようにしました。リネームリファクタリングウィンドウ を開くには Shift+F6 を押下し、リネームを実行するスコープを選択してください。
キャレットの移動を管理する新しいオプション
GoLand 2019.2 では Move Caret to Next Word アクションのデフォルトの挙動が変わり、現在の単語の終わりに移動するようになりました。ご自身にフィットするように変更もできます。 Settings/Preferences | Editor | General ページでキャレットの配置方法を、単語の最後、次の単語のはじめ、または両方の境界線の間から選択してください。
プロジェクトビューに情報が増えました
View メニュー配下で In-place Descriptions に切り替えると、Project View 内にファイルサイズや日時変更のプレビューが表示されるようになりました。
バージョン管理の改善
Local Changes からのコミット
GoLand 2019.2 では Local Changes から直接コミットする方法を提供します。コミット作業をしている間でも、ソースコードの閲覧やファイルの履歴表示、コミットと同じ場所にあるファイルの差分表示、IDEの他の機能の利用をすることができます。
この機能を有効にして Local Changes からコミットできるようにするには、 Settings/Preferences | Version Control | Commit Dialog の ‘Commit from the Local Changes without showing a dialog’ チェックボックスを選択してください。
.gitignore ファイルの改善
GoLand は無視されたすべてのファイルを正しくハイライトし、ファイル名やフォルダ名のコード補完を提案できるようになりました。また、VCS ツールウィンドウの Local Changes タブからコンテキストメニューを使って .gitignore
へファイルを素早くファイルを追加することもできるようになりました。Unversioned files グループで該当のファイルを右クリックし、Add to .gitignore メニューを選んでください。
Merge の中断オプション
マージの実行中は Git Branches ポップアップに Abort Merge オプションが追加で表示されるようになりました。マージを中断するためにターミナルに切り替える必要がなくなりました。
VCS Log のカラムがカスタマイズ可能に
瞳アイコンをクリックすると Log タブに表示するカラムを選択できます。コンテキストメニューから Show Columns メニューを選択し、Author, Date, Hash から参照したいカラムを選んでください。
ツール
シェルスクリプトサポート
GoLand 2019.2 では、単語やパスの補完やクイックドキュメンテーションのプレビュー、テキストのリネームを含むシェルスクリプトのサポートを提供しています。それに加えShellcheckと shfmt との連携も追加しました。
Kubernetes の Kustomize サポート
Kubernetes プラグインを搭載した GoLand 2019.2 では、編集のサポート、キーとパスのコード補完、多くのインスペクション、リネームリファクタリングを提供します。Kustomize リソースファイルのプロジェクトビュー内の宣言されたパスから関連するパッケージやファイルへ移動することもできるようになりました。
Docker コンテナのファイルシステムの参照
実行中の Docker コンテナのファイルシステムを参照できるようになりましyた。ファイルシステムはサービスツールウィンドウ内の Docker ノードの File タブに表示されます。
Web 開発
JavaScript と TypeScript のスマートインテンション
‘Propagate to destructuring declaration’ インテンションでは、別の分解宣言を余分な変数と置換できるようになりました。分解宣言を完全に排除するには、’Replace destructuring with property or index access’ インテンションアクションを使ってください。IDE は条件式内の boolean の表現に不要な箇所あれば警告し、シンプル化するよう提案してくれます。
改善された JavaScript のリネームリファクタリング
JavaScript や TypeScript ファイルにおいてシンボルをリネームする際、IDE は動的な利用箇所も一緒にグループ化するようになりました。デフォルトではそれらをリファクタリングから除外します。このことでリファクタリングはより正確になり、Refactoring Preview ウィンドウで何を正確にリネームする必要があるかをより詳細に制御できます。
Vue.js サポートの強化
あなたの Vue.js アプリケーションでは Vuetify、BootstrapVue を使っていますか?これらおよび他の Vue コンポーネントライブラリからのコンポーネントやそれらの部品のためのコード補完がより正確になりました。このことは IDE でこれらのライブラリを使って作業できるように適用した 新しいアプローチ によって実現しました。