GoLand 2024.1 ヘルプ

コードの再フォーマットと再配置

GoLand を使用すると、現在のコードスタイルスキームまたは .editorconfig ファイルで指定した要件に従ってコードを再フォーマットできます。.editorconfig で定義されていないものがあれば、プロジェクト設定から取得されます。

コードの一部、ファイル全体、ファイルのグループ、ディレクトリ、モジュールを再フォーマットできます。コードの一部または一部のファイルを再フォーマットから除外することもできます。

コードフラグメントを再フォーマットする

  1. エディターで、再フォーマットしたいコードフラグメントを選択します。

    再フォーマットする前に、選択したコードに適用されているコードスタイル設定を確認できます。Alt+Enter を押してコードスタイルの設定を調整するをクリックします。

  2. メインメニューで、コード | コードの整形に移動するか、Ctrl+Alt+L を押します。

ファイルを再フォーマットする

  1. ファイルをエディターで開いて Ctrl+Alt+Shift+L を押すか、プロジェクトツールウィンドウでファイルを右クリックしてコードの整形を選択します。

  2. 開いたファイルの整形ダイアログで、必要に応じて、次の再フォーマットオプションを選択します。

    • インポートの最適化 : 未使用のインポートを削除する、足りないものを追加する、インポート文を整理するには、このオプションを選択します。

    • コードのクリーンアップ : コードクリーンアップインスペクションを実行するには、このオプションを選択します。

    • 改行を保持しない : コードスタイルの設定に従って改行を再フォーマットします。このオプションは、整形時の保持 | 改行設定を上書きします。

  3. 実行をクリックします。

    再フォーマット中にコードに加えられた正確な変更を確認するには、ローカル履歴機能を使用します。

行のインデントを再フォーマットする

指定した設定に基づいて行のインデントを再フォーマットできます。

  1. エディター内で、必要なコードの一部を選択して Ctrl+Alt+I を押します。

  2. インデント設定を調整する必要がある場合は、設定ダイアログ (Ctrl+Alt+S) でエディター | コードスタイルに進みます。インデントを変更する言語を選択します。

  3. タブとインデントタブで、適切なインデントオプションを指定し、OK をクリックします。

保存時にコードを自動的に再フォーマットする

変更が保存されたときに、変更されたファイルのコードを自動的に再フォーマットするように IDE を構成できます。

  1. Ctrl+Alt+S を押して設定を開き、ツール | 保存時のアクションを選択します。

  2. コードの整形オプションを有効にします。

  3. さらに、IDE がコードを再フォーマットする方法を構成できます。

    • スコープの構成をクリックして、再フォーマットから除外するファイル名とディレクトリのパターンを指定します。

    • すべてのファイルタイプリストから、コードを再フォーマットするファイルのタイプを選択します。

    • プロジェクトがバージョン管理下にある場合は、ファイル全体または変更された行を選択します。

      変更された行を選択した場合、再フォーマットは、ローカルで変更されたが、リポジトリにまだチェックインされていないコード行にのみ適用されます。

再フォーマットからファイルを除外する

ファイルとディレクトリのグループを再フォーマットとインポートの最適化から除外できます。

  1. 設定ダイアログ(Ctrl+Alt+S)で、エディター | コードスタイルに移動します。

  2. フォーマッタータブに切り替え、フォーマットしないフィールドに、グロブパターン(英語)を使用して除外するファイルとディレクトリを入力します。

    セミコロン ; で区切られた複数のグロブパターンを指定できます。the Expand icon をクリックすると、フィールドが展開され、各パターンが別々の行に表示されます。

  3. 変更を適用し、ダイアログを閉じます。

    Specifying a glob pattern for excluding files from reformatting

エディターでのコードフラグメントの再フォーマットからの除外

  1. 設定ダイアログ(Ctrl+Alt+S)で、エディター | コードスタイルに移動します。

  2. フォーマッタータブに切り替えて、コードコメント内のマーカーでフォーマッターのオン / オフを切り替えるオプションを有効にします。

  3. エディターで、除外する領域の先頭に、行コメント Ctrl+/ を作成し、@formatter:off と入力します。領域の最後に、別の行コメントを作成し、@formatter:on と入力します。

    マーカー間のコードは再フォーマットされません。

    Formatting markers

gofmt ツールを使用した再フォーマット

gofmt ツールと比較すると、GoLand のフォーマッターは構文的に正しくないコードで動作し、任意のブロックで呼び出すことができます。また、組み込みのフォーマッタは、セミコロンを自動的に挿入し、パラメーターと引数を折り返すことができます。

gofmt を使用したい場合は、次のツールを使用できます。

  • Go ツール : ツール | Go ツールをクリックし、Go fmt ファイル(現在のファイルで gofmt を実行する場合)または Go fmt プロジェクト(現在のプロジェクトで gofmt を実行する場合)を選択します。

  • コミット前セクション : 変更をコミットする前に、gofmt ツールを実行します。

    go fmt before commit
  • ファイル監視 : gofmt ツールを実行するファイルウォッチャーを設定するには、Ctrl+Alt+S を押して設定を開き、ツール | ファイル監視に移動します。追加ボタンをクリックして、go fmt を選択します。新規ウォッチャーダイアログで、OK をクリックします。

    gofmt with file watcher

次のオプションを使用すると、再フォーマットアクションを使用するたびに gofmt ツールを実行できます。例: GoLand は、Ctrl+Alt+L を押すたびに gofmt ツールを実行します。

再フォーマットアクションの後に gofmt ツールを実行する

  • コードを再フォーマットするたびに(たとえば、Ctrl+Alt+L を押すことによって)gofmt ツールを実行できます。最初のパスは、組み込みの GoLand フォーマッターによって作成され、次に gofmt によって作成されます。

    この機能を有効にするには、Ctrl+Alt+S を押して設定を開き、エディター | コードスタイル | Go に移動します。その他タブをクリックし、コードの再フォーマット時アクションチェックボックスを選択します。

    run gofmt after the code reformatting action

コメントに先行スペースを設定する

コードの整形アクション Ctrl+Alt+L を適用した後、GoLand はコメントテキストの前に先行スペースを追加する場合があります。

//easyjson:json
// easyjson:json

Go では、アノテーションもアノテーションとして使用されます。一部のライブラリでは、アノテーションマーカーとアノテーション指示の間のスペースは正しく処理されません。前の例では、easyjson:json はアノテーションです。

特定の接頭辞で始まるアノテーションの先頭スペースを無効にすることができます。

  1. 設定ウィンドウ(ファイル | 設定)を開きます。

  2. エディター | コードスタイル | Go をクリックします。

  3. その他タブをクリックします。

  4. コメントに先行スペースを追加するチェックボックスを選択します。

  5. コメントのスペースを除いてフィールドで、追加アイコン(the Add button)をクリックします。

  6. 例外として追加する接頭辞の名前を入力します(たとえば、easyjson)。

  7. OK をクリックします。

Configure leading spaces for comments in Go

関連ページ:

コードスタイル

特定のコーディングガイドラインが企業内に存在する場合は、ソースコードを作成する際に、このガイドラインに従わなければなりません。GoLand は、必要なコードスタイルを維持できます。IDE には、プロジェクトスキームとデフォルトスキームの 2 つの定義済みスキームが付属しています。プロジェクトスキームでは、構成する設定は現在のプロジェクトにのみ適用されます。これらの設定は、.idea の codeStyles フォルダーに保存され、VCS を介してプロジェクトと共有されます。プロジェクトのコードスタイル...

ファイルの再フォーマットダイアログ

現在のファイルのエディターでを押すとダイアログが表示されます。メインメニューからを選択するかを押すと、GoLand は指定されたスコープのソースコードを自動的に再フォーマットしようとします。VCS にコミットされていない変更のみこのチェックボックスが選択されている場合、再フォーマットは、ローカルで変更されたが、リポジトリにまだチェックインされていないコードにのみ適用されます。このオプションは、バージョン管理下のファイルでのみ使用できます。選択したテキスト現在選択されているソースコードの一部を...

変更の保存と復元

GoLand は、ファイルに加えた変更を自動的に保存します。保存は、コンパイル、実行、デバッグ、バージョン管理操作の実行、ファイルまたはプロジェクトのクローズ、IDE の終了などのさまざまなイベントによってトリガーされます。ファイルの保存は、サードパーティのプラグインによってトリガーすることもできます。自動保存をトリガーするイベントのほとんどは事前定義されており、構成することはできませんが、変更が失われることはなく、ローカルヒストリーですべてを見つけることができます。自動保存動作を設定する設定ダ...

自動インポート

まだインポートしていないタイプ、インターフェース、メソッド、関数を使用する場合、IDE には、不足しているインポートステートメントを追加するように求めるツールチップが表示されるため、手動で追加する必要はありません。を押して、提案を受け入れます。インポート可能なソースが複数ある場合、を押すと候補のリストが開きます。インポートステートメントを自動的に追加する:選択肢がない場合は、インポート文を自動的に追加するように IDE を設定できます。を押して設定を開き、を選択します。明確なインポートをオ...

Go ツール

gofmt:gofmt を使用すると、開いたファイルまたは Go プロジェクト全体で Go ソースコードをフォーマットできます。単一ファイルの場合は、組み込みのインポート管理とコードフォーマッタを使用できます。インポートはオンザフライで管理されます。インポート管理をカスタマイズするには、を押して設定を開き、に移動します。コードを再フォーマットするには、を押します。gofmt と比較すると、GoLand のフォーマッターは構文的に正しくないコードで動作し、任意のブロックで呼び出すことができます...

ファイル監視

ファイル監視は GoLand ツールであり、IDE でファイルを変更または保存するときに、コンパイラー、フォーマッタ、リンターなどのコマンドラインツールを自動的に実行できます。ファイルウォッチャーには、2 つの専用コードインスペクションがあります。ファイル監視使用可能インスペクションは、あらかじめ定義されたファイル監視が適用されるすべてのファイルで実行されます。プロジェクトに関連するファイル監視が設定されていない場合、GoLand はファイルウォッチャーを追加することを提案します。ファイル監視問...