GoLand の新機能

GoLandの新機能

GoLand 2018.2は、Goモジュールをそのまま(以前はvgoとして知られていた)統合し、移動リファクタリングを新しいレベルに持ち、新しいクイックフィックスを追加し、後置補完およびインテンション・アクションファミリを拡張し、デバッガを進化させます。このリリースでは、VCSの全面的な改善が行われ、フロントエンド関連のアップデートやタッチバーサポートなど、最新のIntelliJプラットフォームリリースの多くの機能が組み込まれています。

2018.2 7月25日

Goモジュールサポート(vgo)

このアップデートにより、Goモジュール(別名 "vgo")との統合が可能になりました。

詳細は、GoLand 2018.2 EAPでのvgo統合サポート(英語)を参照してください。

移動リファクタリング

我々は移動リファクタリングを改良しました:

  • 新しい移動ダイアログに識別子が必要かどうかが表示され、各識別子をエクスポートまたは移動するかどうかを決定できます。
  • シンボルをパッケージ間で移動できるようになりました。そのような移動が不可能な場合、IDEはそれに応じて警告します。

新しいクイックフィックス

期待される型に変換する

期待される型に変換すると呼ばれる新しいクイックフィックスは、言語の許可(英語)がいつでも必要なタイプに値を変換します。

欠けているメソッドを実装する

この新しいクイックフィックスを使用すると、予想されるタイプがインターフェースである場合に欠落したメソッドをすばやく追加できます。例:似たような名前のメソッドを実装することもありますが、パラメータのセットが異なります。この場合、IDEは実装しようとしているインターフェースに準拠させるためにメソッドに何を変更する必要があるかを説明します。あるタイプのインターフェースが実装されていない理由を知っているだけでは不十分であるため、IDEでは、使用が発生する場所から直接インターフェースを実装することができます。

メソッドの実装

メソッドの実装アクションは、メソッドをインターフェースから選択したタイプに追加するだけでなく、すぐにこのタイプを作成することができます。

新しいインテンションアクション

  • ドットインポートエイリアスを追加するを使用すると、インポートにドットエイリアスをすばやく追加して、エクスポートされたすべてのシンボルを修飾子なしで使用できるようにします。逆に、ドットインポートエイリアスを削除するはパッケージ名の使用に戻ります。
  • ローカル変数を導入するでは、値を返す関数/メソッド呼び出しの変数を追加できます。

新しい後置補完

  • .sort テンプレートは、配列式またはスライス式を変換し、要素タイプに基づいて適切なソート方法を前置します。エレメントタイプがカスタムタイプの場合は、 sort.Slice メソッドを使用します。
  • .rr テンプレートは、既に利用可能な2つのテンプレート .rre.rrvの力を組み合わせ、同時に変数と式で呼び出すことができます。

コードスタイルの改善

ご存じのように、Goのコメントは注釈としても使用されます。一部のライブラリでは、注釈マーカーと注釈指示の間のスペースは正しく処理されません。

GoLand 2018.2では、特定の接頭辞で始まるアノテーションの先頭のスペースを無効にすることができます。 設定 | エディター | コード・スタイル | Go | その他に行くと、コメントに先行スペースを追加するオプションのカスタム除外リストが表示されます。 で始まるコメントを除いてフィールドを使用して、例外として追加するプレフィックス名を追加します。

デバッガの更新

一時停止しないブレークポイント

デバッガは非一時停止ブレークポイントをサポートしています。ブレークポイントを設定してコンソールに記録したり、到達した時点でブレークポイントのスタックトレースを取得してから実行を再開することもできます。ブレークポイントがヒットして停止すると、これらのアクションを実行することもできます。

関連する変更点では、このアップデートにはいくつかの問題を解決するDelveの最新バージョンが付属しています。通常どおり、デバッグセッションを最大限に活用するには、最新のGoバージョンを使用していることを確認してください。

配列、マップ、スライスの遅延ロード

また、デバッガは配列、マップ、スライスの遅延ロードをサポートするようになりました。マップで深いネスティングをサポートします。マップとスライスでキーと値のペアをよりよく表現できます。

ツール

グローバルファイルウォッチャー

このリリースサイクルでは、ファイル監視は、多くのプロジェクトで作業する開発者のセットアップの冗長性を軽減するためのシンプルで使いやすい機能を提供します。

以前は、プロジェクトごとにファイルウォッチャーを設定することは可能でした。これで、プロジェクトオプションとグローバルオプションのどちらを選択するかを設定することができます。プロジェクトごとに各グローバルウォッチャーの状態を有効/無効にするように範囲を制限することもできます。 ファイル監視を使用すると、ファイルの変更を追跡し、サードパーティのスタンドアロンアプリケーションを実行できます。

Docker

Dockerプラグインは、実行コンフィギュレーションでいくつかの新しいランタイムコマンドラインオプションを認識します:すべてのメモリオプション、 --security-opt、およびGPU: --runtime=nvidiaをサポートするオプション。さらに、Docker 実行/デバッグ構成で --rm オプションを使用して、終了後に自動的にクリーンアップされる一時的なコンテナを起動できるようになりました。

Dockerは、Docker実行コンフィギュレーションのコンテキスト・フォルダーフィールドにドッカーファイル用のDockerビルドコマンドを実行するためのベースディレクトリを指定するオプションを取得します。

バージョン管理

競合をマージする

新しい競合をマージするノードは、各チェンジリストのマージ競合を含むファイルをグループ化し、それらを簡単に見つけることができます。 解決アクションリンクにより、改良された競合でマージされたファイルダイアログが開きます。 プルマージ、またはリベースを実行するときにGit ブランチの名前が表示され、ディレクトリごとにファイルをグループ化することができます。これは、複数のファイルが競合でマージされている場合に特に便利です。

拡張ログタブ

バージョン管理ツールウィンドウの[ログ]タブには、次の改善点が追加されています。

  • 必要なだけログタブを開きます。
  • ブランチフィルタを使用して、お気に入りのブランチでコミットをすばやくフィルタリングできます。
  • コンテキストメニューからGitタグをコミット権から簡単に削除できます。
  • コンテキストを切り替えることなく差分プレビューパネルを探検してください。
  • コンテキストメニューから新しい改訂時にリポジトリを参照アクションを使用してリポジトリの状態を監視します。Gitバージョン管理でのみ使用できます。

Gitのプッシュダイアログをスキップする

GoLand 2018.2では、コミットプッシュアクションを使用するときに、プッシュダイアログを完全にスキップするオプションがあります。

また、保護されたブランチにプッシュするときにこのダイアログを表示することもできます。これを設定 | バージョン管理 | Git | プッシュを表示するダイアログコミットプッシュに設定します。

複数のGitHubアカウント

これにより、必要なだけ多くのGitHubアカウントを簡単に管理できます。 設定 | バージョン管理 | GitHubで使用するすべてのアカウントを設定し、プロジェクトごとにデフォルトのGitHubアカウントを割り当てます。

ユーザー・インターフェース

タッチバーのサポート

MacBook プロの所有者にとっては良いニュースです! GoLand 2018.2はタッチバーから直接、プロジェクトの実行、ビルド、デバッグ、変更のコミットなど、まったく新しいIDE体験を提供します。利用可能なすべてのタッチバーのコンテキストは、設定 | 外観 & 振る舞い | カスタマイズのタッチバーページでカスタマイズできます。

暗黒化

暗いタイトルバーでGoLandを楽しむことができます。 設定 | 外観 & 振る舞い | 外観に行き、ダーク・ウィンドウ・ヘッダーを使用するを選択してこれを試してください。

最後に、IntelliJ Platformに基づいた他のIDEのように、GoLandのアイコンは視覚的な混乱をなくし、読みやすさ、見つけやすさ、そして明快さを向上させることを目指した新しい見方をしています。

詳細は、IntelliJ Platform 2018.2の新しいアイコン。(英語)を参照してください。

JavaScriptとTypeScript

TypeScriptの改善

TypeScript 2.9および今後リリースされるTypeScript 3.0のサポート

それに加えて、GoLandはJSDocの型で注釈を付けるのようなTypeScript言語サービス自体によって提供されるより迅速な修正を提供します。

新しいインテンション

このアップデートにより、 Alt+Enterを介して多数の新しいインテンションが利用可能になりました。 インターフェースの実装派生クラスの作成インターフェースまたは抽象クラスのメンバーを実装する'switch'のケースを生成する'for..of'と繰り返すのほんの一部です。

未使用コードの検索

新しいコードカバレッジ機能により、プロジェクト内の未使用のコードを見つけることができます。 GoLandでカバレッジのあるJavaScriptデバッグ設定を開始し、Chromeであなたのアプリケーションとやりとりして、設定を停止します。レポートには、各ファイルとフォルダで使用されたコードの種類と量が表示されます。

2018.1 3月27日

新しい移動リファクタリング

今回のアップデートでは、移動リファクタリングを追加しました。このリファクタリングにより、最上位のメンバを同じパッケージの別のファイルにすばやく移動できます。パッケージ間の移動はまだ許可されていません。

コード補完

デフォルト値補完

キャレットが関数内のリターンステートメントの右側にある場合、コード補完は関数の戻り値の型に対応するデフォルト値を提案するようになります。

否定補完

コード補完によって提案されたbool式は、 !を押して同時に選択して無効にすることができるようになりました。

新しい後置補完

  • .if テンプレートは、bool式をifステートメントに変換します
  • .p テンプレートは、式の前にポインタ演算子を付加します

インテンションのその他のアクション

    アップデートに追加された新しいインテンションが多数あります。ブール式の場合はフリップ、バイナリ式の場合は否定再帰的に否定する反転です。

より良いインスペクション

go vetに対応するインスペクションのいくつかは、Go 1.10のゴーテストの前に実行されるはずです。 IDEは、fmt.Printfの呼び出しと無効なビルドタグの型の不一致を警告します。

Enterの自動フォーマット

キャレットがチェーン呼び出しまたは文字列リテラル上にあるときに Enter をクリックすると、IDEは結果のコードを自動的にフォーマットします。

オンザフライでインポートを最適化する

エディタは入力時に、未使用パッケージのインポート文をオンザフライで削除できるようになりました。これは、自分でインポートステートメントを削除する必要がないので便利です。このオプションはオンザフライでインポートを最適化すると呼ばれます。 設定 | Go | インポートで有効にすることができます。

Dep統合

dep(英語)プロジェクトで作業し、未解決のインポートステートメントを持つファイルを開くと、IDEは確実に実行されるクイックフィックスを提供します。

新しいプロジェクトを作成するには、プロジェクトウィザードを開き、ダイアログの左側にある[Dep]タブに切り替えます。

新しいドキュメントポップアップ

クイック・ドキュメントポップアップでは、サンプル関数を認識し、ドキュメントの一部としてそれらを含めています。サンプル関数の名前をクリックすると、IDEはその関数のコードでスクラッチ・ファイルを開きます。

スクラッチファイルの改善

Goコード選択から作成されたスクラッチ・ファイルは、すべての適切なインポートステートメントを自動的に取得します。また、スクラッチ・ファイル設定 | エディター | ファイルおよびコード・テンプレートでカスタマイズ可能な定義済みのテンプレートから作成されます。

デバッガの機能拡張

このアップデートでは、デバッガをローカルに実行中のプロセスにアタッチすることができます。これを行うには、メインメニューの実行をクリックし、ローカル・プロセスへ接続を選択してデバッグするプロセスを選択するだけです。

また、デバッグ時に、IDEはデバッガーツールウィンドウの監視式変数タブのシャドウ変数を区別することができます。

より良い実行機能

テストランナーの更新

このアップデートでは、テストの階層構造がサポートされ、出力およびコンパイルエラーが個々のテストおよびパッケージに正しく属性付けされています。

複数のファイルを実行する

更新されたGo ビルド実行コンフィギュレーションで、複数のファイルを選択して実行できるようになりました。

その他のコーディング支援の改善

人生をはるかに簡単にするためのいくつかの改良点のリストがあります:

  • IDEが提供するコーディング支援は、Go 1.10のすべての機能を完全にサポートするように更新されました。
  • 変数の導入が使用する名前提案アルゴリズムは、コンテキストを認識し、名前の衝突を回避します。
  • 自動インポートのメカニズムがよりスマートになり、結果のコードがエラーなしでコンパイルされる場合にのみ適用されるようになりました。



  • グローバルシンボル用の名前変更リファクタリングと使用箇所の検索は、はるかに高速になりました。
  • IDEのパフォーマンスを向上させるために、このアップデートではプロジェクトのインデックススコープを制限することができます。 GOPATH全体のインデックス作成を避けることができます。新しいオプションは、ファイル | 設定 | Go | GOPATH | GOPATH全体を索引するプロジェクトウィザードの両方で利用できます。

Gitの改善

部分的なコミット

このアップデートでは、ファイル内の個々の変更を異なるチェンジリストに関連付け、それらを別々にコミットしてプッシュできるようになりました。 git add -pに類似しています。

コミットの変更を含めるには、変更のコミットダイアログの相違ペインのガターのチェックボックスを使用します。個々の変更をチェンジリスト全体に移動するには、エディタの左側にある変更マーカーを使用します。

より多くのリベースアクション

リベースをしているとき、GZ ブランチポップアップで新しいリベースを中断リベースを続行コミットをスキップアクションが利用できるようになりました。

JavaScriptとTypeScript

TypeScriptの改善

このアップデートでは、新しいTypeScript 2.7の機能がサポートされており、解決されていないプロパティのための新しいタイプガード付きサラウンドクイックフィックスが追加されています。

スマートなリネームリファクタリング

クラスの名前変更リファクタリングは、ファイルの名前を変更するようになりました。リファクタリングは、クラスのインテンションアクションとして利用可能になりました。

Prettier で再フォーマット

このアップデートでは、有力なコードフォーマッタであるPrettier(英語)が統合されています。よりきれいなパッケージをインストールしたら、新しいPrettier で再フォーマットアクションが利用可能になります。

Vueコンポーネントを抽出する

このアップデートでは、Vueテンプレートの任意のフラグメントを選択し、リファクタリング | 抽出または Alt+Enter経由で別のVueコンポーネントとして抽出するようにIDEに依頼します。

デプロイ

Docker

Docker Composeの実行コンフィギュレーションダイアログが改善され、複数の作成ファイルがサポートされ、実行するサービスを選択できるようになりました。

Dockerツールウィンドウには、実行コンフィギュレーションが設定されているプロジェクトだけでなく、プロジェクトファイル内で設定されているすべてのDocker Composeプロジェクトが表示されます。

Kubernetes

このアップデートでは、プラグイン(英語)を介したKubernetesの初期サポートが導入されました。サポートには、コード補完、インスペクション、リソースファイルのクイックフィックス、ナビゲーションの容易なアイコン、ポップアップドキュメント、ライブテンプレートが含まれます。