GoLand の新機能

GoLand の新機能

GoLand 2020.3 では、goroutines ダンプを探索し、実行して個々のテーブルテストに移動し、Testify テストフレームワークの拡張サポートからさらに多くのものを得ることができます。また、タイムパッケージのサポート、パッケージをよりスマートに処理する方法、UI の改善、Web 開発とデータベースの操作のためのさまざまな新機能、共同開発とペアプログラミングのための新しいサービスなど、多くの新しいコード編集機能もあります。

読むのではなく、インタラクティブに学ぶことを好みますか? IDE 内のウェルカム画面で GoLand 2020.3 の新機能チュートリアルを完了します。

デバッガーの改善

Exploring goroutines stack in the debugger

デバッガーの新しいダンプゴルーチンアイコンを使用すると、デバッグセッション中にスタック内の指定された文字列を含むゴルーチンを簡単に見つけることができます。アイコンをクリックするだけで、別のウィンドウでダンプを開くことができます。

重要な情報に集中し続けるために、同じスタックを持つ個々の 1 つまたは複数のゴルーチンを非表示にするオプションがあります。ゴルーチンを右クリックして目的のアクションを選択するか、Delete キーを押して、気を散らさないダンプウィンドウの特別な非表示セクションに移動します。

Stopping 'Go Remote' configuration

GoLand 2020.3 は、再接続が必要ない場合に Go リモート構成でプロセスを停止する機能をもたらします。

構成設定では、切断時のデバッガーのデフォルトの動作を指定したり、リモート Delve プロセスを停止します実行したままにしますを選択したり、GoLand に毎回続行する方法を尋ねさせたりすることができます。

テストの機能強化

Running an individual table test

テーブルテストのサポート

実行ツールウィンドウから個々のテーブルテストを実行してナビゲートできます。

いくつかの制限があります:

  • テストデータ変数は、スライス、配列、またはマップである必要があります。呼び出しと同じ関数で定義する必要があり、初期化後に変更しないでください(for ループの範囲句を除く)。
  • 個々のテストデータエントリは、構造体リテラルである必要があります。サブテスト名式で使用されるループ変数は、呼び出しの前に触れてはなりません。
  • サブテスト名の式は、テストデータの文字列フィールド、テストデータの文字列フィールドの連結、および %s 動詞と %d 動詞を使用した fmt.Sprintf() 呼び出しにすることができます。
GoLand suggests an argument inside test functions

Testify の拡張サポート

IDE は、テストスイートを開始するテスト関数を認識し、サブテスト名が文字列定数である限り、個々の suite.Run および suite.T().Run を開始する方法を提供するようになりました。さらに、実行ツールウィンドウからサブテストを再実行して、トップレベルテスト全体の再実行を回避することができます。

さらに、GoLand は、単一のテストケース内で同じメソッド名の Testify スイートを個別に実行できるようになりました。

最後になりましたが、最初の引数として testing.T を受け入れる関数またはメソッドを完了すると、GoLand は可能であればその引数を自動的に渡します。これは、testify/assert , testify/require , testify/mock および testify/suite パッケージの関数とメソッドで機能します。

コードインスペクション

GoLand warns about a potential problem in the editor and shows the 'Add format string argument' intention

Println / Printf のような関数の誤った使用箇所コードインスペクションは、github.com/pkg/errors , github.com/sirupsen/logrus および go.uber.org/zap パッケージの潜在的な問題について警告します。

その上に、プレースホルダーのハイライトと折りたたみ、および書式文字列引数を追加するインテンションを追加しました。

GoLand provides a warning when an execution path doesn't call the cancel function

context.CancelFunc はコードと呼ばれていませんインスペクションは、コンテキストキャンセルの潜在的に危険な使用を報告します。これは、context.WithCancel によって返される「キャンセル」関数(および同様の関数)がすべての実行パスで呼び出されない場合に特に役立ちます。

このパッケージの詳細については、https://golang.org/pkg/context/(英語) を参照してください。

コード編集

GoLand provides code completion for time layout

タイムパッケージのサポート

時間パッケージのサポートが追加されたため、時間と期間をより簡単に処理できます。GoLand は、ISO-8601(英語) からの YYYY , MM , DD プレースホルダーとして、コード補完(Ctrl+Space)を介して事前定義されたレイアウトの要素を提案します。

トークンで Ctrl+P を押すと、IDE にその意味が表示されます。レイアウトトークンの構文のハイライトもあります。コード補完は、文字列リテラルの外側の標準時間レイアウトも提案します。

Excluding package from import and code completion via Alt+Enter

よりスマートなパッケージ処理

IDE は、頻繁に使用し、プロジェクトの go.mod ファイルで明示的に宣言されているパッケージの補完項目に優先順位を付ける際に賢くなりました。

また、プロジェクトのインポートパスと補完提案からパッケージを完全に除外するオプションを追加しました。これは Alt+Enter または設定 | Go | インポートの新しいインポートと完了を除外するウィンドウで行うことができます。

GoLand uses a different color to highlight variables that shadow any existing declaration

可変シャドウイングのサポート

GoLand を使用すると、可変シャドウを簡単に見つけることができます。

  • IDE は、既存の宣言を別の色でシャドウする変数を表示します。
  • シャドウイング宣言に移動しますインテンションアクションを使用すると、シャドウ宣言にすぐに切り替えることができます。
GoLand supports square brackets in type parameters

型パラメーターの角括弧

Go チームによるジェネリクスの設計(英語)からの更新に従い、以前の提案版で実装されたように、括弧の代わりにジェネリクス構文の角括弧のサポートを追加しました。

設定 | Go ジェネリクスを有効にする (型パラメーターの実験的サポート) 設定はデフォルトでオフになっていることに注意してください。この機能の使用を開始するには、そのチェックボックスを明示的に選択する必要があります。

型パラメーターの詳細については、このブログ投稿(英語)を参照してください。

その他の改善

GoLand shows 'Test' and 'Benchmark' Live Templates in the code completion suggestion list

テストファイルに func と入力すると、GoLand はデフォルトで、補完オプションに benchtest ライブテンプレートを提案します。

GoLand suggests completing a for loop with b.N inside the benchmark

ベンチマーク内で for と入力すると、IDE は b.N を使用して for ループで完了することを提案します。

GoLand suggests fixing a typo

スペルと文法チェッカーの改善

Alt+Enter を押すと、提案がダイアログにすぐに表示されるようになりました。さらに、LanguageTool 文法チェックエンジンの新しいバージョンは、英語のチェックが改善され、10 の追加言語のサポートが追加されています。

Code With Me

'Code With Me' in action

GoLand 2020.3 は Code With Me (EAP)(英語) をサポートします。これは、共同開発とペアプログラミングのための JetBrains の新しいサービスです。Code With Me を使用すると、IDE で現在開いているプロジェクトを他の人と共有し、リアルタイムで一緒に作業することができます。

詳細については、これらの投稿(英語)を確認してください。

UI の改善

Reworked Welcome screen

ウェルカム画面を作り直しました

ウェルカム画面を作り直して、次のものにすぐにアクセスできるようにしました。

  • プロジェクトを検索します。
  • IDE をカスタマイズするための設定。
  • IDE の機能を拡張するためのプラグイン。
  • IDE の機能の詳細を学ぶためのチュートリアル。
'Sync with OS theme option in settings

IDE テーマを OS 設定と同期する

設定 | 外観と動作 | で OS と同期オプションを選択します。外観 | テーマは、OS の設定に合わせて IDE テーマを自動的に切り替えます。

Dragging a tab to split the editor

タブを任意の場所にドラッグアンドドロップして、エディターを分割する

タブを目的の位置にドラッグしてドロップすることにより、メインエディター画面を水平または垂直に分割します。タブをドラッグしているとき、エディターはタブをドロップできる場所をハイライトします。

Opening a second file in the editor

プロジェクトビューの更新

プロジェクトビューからファイルを操作する際の UX を改善しました。これで、プロジェクトビューからファイルを開くと、フォーカスがエディターに自動的に配置され、コードの操作をすぐに開始できるようになります。スペースバーを押すと、IDE はプロジェクトビューにファイルのプレビューを表示します。

エディターで複数のファイルを同時に開きたい場合は、1 つの簡単なショートカットで開くことができます。プロジェクトビューでファイルを選択し、Shift+Enter を押して、IDE にエディターウィンドウを分割させ、その右側にあるファイルを開きます。

VCS の更新

Reworked VCS menu

作り直された VCS メニュー

VCS メニューは、現在使用しているバージョン管理システムに適応し、サブメニューに表示されなくなったため、主要な VCS 機能に簡単にアクセスできるようになりました。

Git staging area

Git ステージングエリアのサポート

利用可能な素晴らしい新しい Git ステージングエリアがあります ! この機能は、コミットツールウィンドウでのみ使用できることに注意してください。

設定 | バージョン管理 | のステージングエリアを有効化チェックボックスにチェックマークを付けます。Git でオンにします。これを行うと、変更リストのサポートが無効になります。

コミット UI には、ステージングされたファイルとステージングされていないファイルがあります。ファイルをステージングする準備ができたら、ファイルの横にある + アイコンをクリックするだけです。ファイルはステージングノードに表示されます。ステージングエリアに変更を追加するには、ガターアイコンまたは差分を表示を使用することもできます。

GoLand corrects an incorrect branch name

ブランチでの改善された作業

ブランチでの作業が改善されました:

  • IDE は、新しいブランチの名前の受け入れられない記号を自動的に修正するようになりました。これにより、受け入れられた形式に沿ってブランチを作成できます。
  • IDE には、他のブランチの場合と同様に、現在選択されているブランチで使用可能なすべてのアクションが表示されます。
  • リモート ブランチの場合、現在のブランチにマージおよび現在のブランチを選択したブランチにリベースアクションの名前をマージを使用して現在のブランチにプルおよびリベースを使用して現在のブランチにプルに変更しました。

より多くの機能

Disabling a plugin for all projects

プロジェクトごとに有効なプラグイン

現在のプロジェクトで使用可能にするまたはすべてのプロジェクトで使用可能にするを選択して、現在のプロジェクトまたはすべてのプロジェクトのプラグインを有効にする機能を追加しました。設定 | プラグインで、有効または無効にするプラグインの歯車アイコンを押して、目的のオプションを選択します。

System shortcut keymap for macOS in settings

macOS のシステムショートカットキーマップ

macOS システムショートカットキーマップ(設定 | キーマップ)は、システムショートカットとの拡張互換性を提供し、重要なアクションに F キーを使用しないようにする代替の macOS キーマップを提供することを目的としています。

Flame Graph in the Profiler in action

プロファイラー–フレームグラフ

プロファイラーの FlameGraph の検索メカニズムとその視覚化が改善され、メソッドの指標をすばやく見つけることができるようになりました。虫眼鏡アイコンをクリックするか、FlameGraph パネル内に検索リクエストを入力できます。

また、検索フィールド、検索結果間の高速ナビゲーションのための上下の矢印、FlameGraph 全体または特定のサブツリーのみを検索する機能を追加しました。

Web 開発の変更

Creating a React component from its usage

その使用箇所から React コンポーネントを作成する

WebStorm チームの好意により、GoLand は、内部で Web 開発を豊富にサポートするようになりました。この領域での今後の変更の 1 つは、未解決の参照から React コンポーネントを作成する機能です。キャレットを未解決のコンポーネントに配置し、Alt+Enter を押して、対応するインスペクションを選択します。

GoLand found pnpm on the machine

pnpm の完全サポート

GoLand は、npm と yarn に加えて、pnpm(英語) パッケージマネージャーを完全にサポートします。pnpm-lock ファイルを使用してプロジェクトを開き、マシンに pnpm をインストールすると、GoLand はこのプロジェクトのパッケージマネージャーを自動的に pnpm に変更します。IDE には、設定 | Languages およびフレームワーク | のパッケージマネージャーのリストに専用の pnpm オプションもあります。Node.js と NPM。

Webpack settings

複数の webpack 構成の基本サポート

GoLand 2020.3 を使用すると、webpack 構成ファイルを手動で検出するか自動で検出するかを選択できます。新しいオプションは、設定 | Languages& フレームワーク | にあります。JavaScript | Webpack

データベースを操作する

Adding Couchbase Query as data source

Couchbase のサポート

DataGrip チームの同僚のおかげで、GoLand は、サポートされているデータベースのファミリーを新しいメンバー Couchbase で拡張しました。IDE は Couchbase Analytics サービスではなく Couchbase クエリサービスをサポートしていることに注意してください。

GoLand displays grants in an object ’ s DDLs

助成金のサポート

GoLand はオブジェクトの付与について認識しており、オブジェクトの DDL に表示します。これは、MySQL、PostgreSQL、Greenplum、Redshift、SQL Server で機能します。

GoLand displays the formatted value in a separate editor

セル値の個別のエディター

セル値の個別のエディターを改善しました。

  • 値が正しくフォーマットされていなくても、フォーマットされた値が表示されるようになりました。
  • フォーマットされたビューの値を編集して、1 行の XML および JSON の元のフォーマットで更新することができます。
  • 画面の幅がフローにとって重要な場合は、セル値エディターをデータエディターの下部に移動できます。
  • このパネルはイメージも表示できるようになりました !
'One-Row' extractor in action

データベースのインポート / エクスポート

データの操作を簡単にするために、2 つの新しいエクストラクターを追加しました。

  • 1 行は、列をコンマ区切りの文字列にコピーできます。
  • SQL- 挿入 - 複数行は、複数の新しい行が挿入される単一の INSERT ステートメントを生成します。

さらに、CSV 形式の構成に新しいオプションが追加されました。値を引用しないでください。