GoLand 2019.2の新機能

関数コールのサポート

プログラム実行中の特定の時点において式内部で起こっていることを詳細に検査できます。この機能は、Delve および Go Runtime からの試験的な関数コールのサポートであることにご注意ください。関数コールサポートにおいてバグや問題を見つけた場合は、JetBrains 社の課題トラッカー までご報告ください。

改善された Default & Darcula カラースキーム

GoLand 2019.2 では Default と Darcula カラースキームを強化し、コードハイライトにより意味づけが行われました。

これによりコードの可読性が上がり、ロジックをより素速く理解しやすくなるでしょう。変数とパッケージ名を簡単に区別できたり、ビルトインのコードの構文と自身の構文の区別、型変換と関数コールも簡単に区別できます。メソッドのレシーバと関数コールは独自の色を持つこともできます。従来どおり、テイストは Settings/Preferences | Editor | Color Scheme で変更できます。

Updated Darcula color scheme

Debugger のアップデート

String() メソッドを使用した変数の詳細情報

デバッガでは Variables ペイン内にString(), Error(), DebugString() メソッドの実装の結果を表示するようになりました。呼び出しのない単一の return ステートメントのメソッドをサポートしています。

The debugger shows the results of String() method implementations in the Variables pane

特定の型を読みやすく表示

GoLand 2019.2 では time.Time, time.Duration から派生した構造体の値、および人間が読めるフォーマットの net.IP 型をデバッガの Variables ペインに表示するようになりました。

Presentation of time.Time and net.IP in the Variables pane

整数のデフォルトフォーマット

デバッガ内で整数の値のデフォルトの表示方法を2進数、10進数、または16進数から選択できます。表示フォーマットは Settings/Preferences | Build, Execution, Deployment | Debugger | Data Views | Go で設定してください。

Select decimal format in the settings

Go 1.13 機能をサポート

GpLand 2019.2 はシフトカウントとしての数値リテラルおよび符号付き整数に対応しました。これらの変更点は Go 2 に向かうステップにも関連します。 詳細はこちらのブログをご覧ください。

GoLand のコードハイライトはいかなるミスも警告し、コンソールに出力が正しく表示されます。

新しい Go 1.13 の機能および GoLand 2019.2 でのサポート方法詳細はこちらの記事をご欄ください。

Result of new number literals in the Console

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 のようなレシーバ名は推奨されません。結果としてメソッドは異なるレシーバ名を持ちます。このコード補完機能を使うことで違いを無視できます。

Code completion suggestions for a receiver member without a receiver

賢い 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 インデックス検証機能を追加しました!これによりプロジェクトをコンパイルする前に、インデックスが負ではない整数定数であるべきことをエディタが警告してくれます。

IDE warns about a non-negative integer constant in the editor

コード編集

エスケープシーケンスに対応

文字列リテラル内のエスケープシーケンスサポートが完全に搭載されました。

  • コードハイライト
  • 潜在的な問題を警告するインスペクション
  • エスケープシーケンスの場所を理解したスマート編集
  • より正確になったスペルチェック

また、フォーマットされたプレースホルダは異なる色でハイライトされるようになりました。このため長い文字列で簡単に見つけることができるようになりました。色は 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 ダイアログがポップアップになり、作成される可能性のあるファイルタイプの一覧が表示されるようになりました。 以前は選択するために一覧を広げる必要がありましたが、現在は利用可能なオプション全てが直接参照できます。

New | File dialog

改善されたプラグインページ

GoLand は Plugin の詳細を表示するようになったため、各種プラグインの詳細ページを1つ1つオープンする必要がなくなりました。歯車アイコン配下に新しいオプションを追加し、ダウンロードしたプラグインの無効化または有効化を一度に実施できるようにしました。‘Update’ ボタンは Installed タブ内のプラグイン名の近くに配置しました。Updates タブは必要がなくなったため削除しました。

Plugins page

整理された Find ツールウィンドウ

Find ツールウィンドウでは、あまり使われないアイコンをグループ化し、他は削除しました。

Difference between an old Find tool window and the new one

便利になった一般的な変更点

スコープの選択肢オプション

Recently Changed や Recently Viewed Files、Files in Previous Search Result、Selection のような新しいスコープ全てをスコープの選択肢に追加しました。また、Data Sources スコープも選択できるようにしました。これに加えて、Rename refactoring のスコープの選択もできるようにしました。リネームリファクタリングウィンドウ を開くには Shift+F6 を押下し、リネームを実行するスコープを選択してください。

Select Recently Viewed Files scope

キャレットの移動を管理する新しいオプション

GoLand 2019.2 では Move Caret to Next Word アクションのデフォルトの挙動が変わり、現在の単語の終わりに移動するようになりました。ご自身にフィットするように変更もできます。 Settings/Preferences | Editor | General ページでキャレットの配置方法を、単語の最後、次の単語のはじめ、または両方の境界線の間から選択してください。

Settings of Move Caret to Next Word action

プロジェクトビューに情報が増えました

View メニュー配下で In-place Descriptions に切り替えると、Project View 内にファイルサイズや日時変更のプレビューが表示されるようになりました。

File size, date and time of modification in the 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’ チェックボックスを選択してください。

File size, date and time of modification in the Project View

.gitignore ファイルの改善

GoLand は無視されたすべてのファイルを正しくハイライトし、ファイル名やフォルダ名のコード補完を提案できるようになりました。また、VCS ツールウィンドウの Local Changes タブからコンテキストメニューを使って .gitignore  へファイルを素早くファイルを追加することもできるようになりました。Unversioned files グループで該当のファイルを右クリックし、Add to .gitignore メニューを選んでください。

Adding a file to .gitignore via context menu

Merge の中断オプション

マージの実行中は Git Branches ポップアップに Abort Merge オプションが追加で表示されるようになりました。マージを中断するためにターミナルに切り替える必要がなくなりました。

Abort Cherry-Pick option via context menu

VCS Log のカラムがカスタマイズ可能に

瞳アイコンをクリックすると Log タブに表示するカラムを選択できます。コンテキストメニューから Show Columns メニューを選択し、Author, Date, Hash から参照したいカラムを選んでください。

Select Hash column

ツール

シェルスクリプトサポート

GoLand 2019.2 では、単語やパスの補完やクイックドキュメンテーションのプレビュー、テキストのリネームを含むシェルスクリプトのサポートを提供しています。それに加えShellcheckと shfmt との連携も追加しました。

Path completion for Shell Script

Kubernetes の Kustomize サポート

Kubernetes プラグインを搭載した GoLand 2019.2 では、編集のサポート、キーとパスのコード補完、多くのインスペクション、リネームリファクタリングを提供します。Kustomize リソースファイルのプロジェクトビュー内の宣言されたパスから関連するパッケージやファイルへ移動することもできるようになりました。

Docker コンテナのファイルシステムの参照

実行中の Docker コンテナのファイルシステムを参照できるようになりましyた。ファイルシステムはサービスツールウィンドウ内の Docker ノードの File タブに表示されます。The services tool window with the file system of the running Docker container

Web 開発

JavaScript と TypeScript のスマートインテンション

‘Propagate to destructuring declaration’ インテンションでは、別の分解宣言を余分な変数と置換できるようになりました。分解宣言を完全に排除するには、’Replace destructuring with property or index access’ インテンションアクションを使ってください。IDE は条件式内の boolean の表現に不要な箇所あれば警告し、シンプル化するよう提案してくれます。

Propagate to destructuring declaration intention in action

改善された JavaScript のリネームリファクタリング

JavaScript や TypeScript ファイルにおいてシンボルをリネームする際、IDE は動的な利用箇所も一緒にグループ化するようになりました。デフォルトではそれらをリファクタリングから除外します。このことでリファクタリングはより正確になり、Refactoring Preview ウィンドウで何を正確にリネームする必要があるかをより詳細に制御できます。

Grouped and excluded dynamic usages in the Refactoring Preview tool window

Vue.js サポートの強化

あなたの Vue.js アプリケーションでは Vuetify、BootstrapVue を使っていますか?これらおよび他の Vue コンポーネントライブラリからのコンポーネントやそれらの部品のためのコード補完がより正確になりました。このことは IDE でこれらのライブラリを使って作業できるように適用した 新しいアプローチ によって実現しました。

Code completion for components