File Watchers
File Watcher は GoLand のツールで、IDE 内でファイルを変更または保存したときに、コンパイラー、フォーマッター、リンターなどのコマンドラインツールを自動で実行できます。
File Watchers には 2 つの専用 コードインスペクションがあります。
ファイル監視使用可能インスペクションは、定義済みの File Watcher が適用可能なすべてのファイルで実行されます。 プロジェクトに関連するファイルウォッチャーが設定されていない場合、GoLand は追加することを提案します。
ファイル監視問題インスペクションは実行中の File Watcher によって呼び出され、それに固有のエラーをハイライトします。
利用可能なテンプレートのいずれかを使用することも、File Watcher を最初から設定することもできます。 設定した File Watcher はプロジェクト設定または IDE 設定に保存し、他のプロジェクトで使用できます。 次の図は、File Watchers の定義済みテンプレートの一覧です。 定義済みテンプレートのリストは変更できません。

特定のツールの File Watcher についての詳細は、該当するページを参照してください:
GoLand でこれらのツールの一部を使用するには、 設定 | プラグイン ページで JetBrains Marketplace からプラグインをインストールするに従いプラグインをインストールする必要があります。
File Watcher の作成
設定 ダイアログ(Ctrl+Alt+S )で、 ツール の File Watchers をクリックします。 File Watchers ページが開き、このプロジェクトと IDE ですでに構成されているファイルウォッチャーのリストが表示されます。
をクリックし、File Watcher を作成するための定義済みテンプレートを選択します。 選択するテンプレートは、使用するツールによって異なります。 リストにないツールを使用する場合は、 カスタム を選択してください。

新規ウォッチャーダイアログが開きます。
命名 フィールドに、File Watcher の名前を入力します。 デフォルトでは、GoLand は選択された定義済みテンプレートの名前を提案します。
入力ファイルの予想されるタイプと場所の構成
ウォッチ対象ファイル 領域のコントロールを使用して、ファイルウォッチャーを適用するファイルの範囲を定義します。
ファイルタイプ リストから、予想される入力ファイルの種類を選択します。 File Watcher は、この種類のファイルのみを分析および処理の対象と見なします。 ファイルタイプは、 ファイルタイプとファイル拡張子の関連付けに基づいて認識されます。
デフォルトで、このフィールドには選択した定義済みテンプレートに従ったファイルタイプが表示されます。
ファイル監視が適用される スコープ を選択します。

これらのファイルを変更すると、 編集したファイルを自動保存してウォッチャーをトリガーする チェックボックスの状態に応じて、直ちに、または保存またはフレームの非アクティブ化時にファイル監視が起動されます。
リストから定義済みスコープの 1 つを選択します。 プロジェクトレベルのファイル監視の場合は、
をクリックして、表示される スコープ ダイアログでカスタムスコープを設定することもできます。
すべての場所:: 下記のすべての範囲
プロジェクトファイル:: プロジェクト内のすべてのファイル
スクラッチとコンソール:: ファイル ツールウィンドウ( )のすべてのスクラッチとコンソール。
最近表示したファイル: エディターで最近表示されたすべてのファイル。
最近変更したファイル: エディターで最近変更されたすべてのファイル。
モジュール: 現在のモジュール内のすべてのファイル。
現在のファイル:: アクティブなエディタータブで開かれたファイル
すべての変更ファイル:: すべての変更されたファイル、つまりすべての既存の変更リストに関連付けられたすべてのファイル。
デフォルト変更リスト:: 変更リスト  
デフォルトに関連付けられているすべてのファイル。
または、
をクリックし、開いた スコープダイアログで カスタムスコープを構成します。
詳細については、 スコープを参照してください。
外部ツールとの相互作用の構成
変更時に実行するツール 領域で、使用するツール、ツールに渡す引数、予想される出力ファイルの種類などを指定します。
プログラム フィールドに、ツールの実行可能ファイルへのパス( .exe 、 .cmd 、 .bat 、または特定のツールに応じてその他)を指定します。
引数 フィールドで、ツールに渡す引数を定義します。
引数は通常、実際のファイル名に置き換えられる
$FileName$や$FileNameWithoutExtension$などの マクロを使用して指定されます。マクロを手動で入力するか、
をクリックして、開いた マクロ ダイアログのリストから関連するパターンを選択します。
リフレッシュする出力パス フィールドで、ツールがその出力を保管するファイル(結果のソースコード、ソースマップ、依存関係)を指定します。 これらの設定に基づいて、GoLand はコンパイルで生成されたファイルを認識します。
通常、出力パスは マクロを使用して指定されます。 手動で入力するか、
をクリックして、開いたダイアログのリストから関連するものを選択できます。
複数のマクロを指定するには、区切り文字としてコロン
:を使用します (例:$FileNameWithoutExtension$.css:$FileNameWithoutExtension$.css.map)。作業ディレクトリと環境変数 隠し領域を展開します。
環境変数を定義します。 例: 構成するツールの開始に必要なツールの
PATH変数を指定しますが、そのパスで参照されていません。作業ディレクトリ フィールドに、ツールを適用するディレクトリを指定します。
ツールは常にファイルのコンテキストで呼び出されるため、デフォルトの作業ディレクトリは現在のファイルのディレクトリです。 デフォルトの作業ディレクトリは、
$FileDir$マクロを使用してすべての定義済みテンプレートで指定されます。 カスタム作業ディレクトリを指定するには、そのパスをフィールドに入力するか、をクリックして パスの選択 ダイアログでディレクトリを選択するか、
をクリックして マクロ ダイアログ内のリストから目的の マクロ を選択します。
詳細オプションの構成
拡張オプション 領域では、File Watcher のデフォルト動作をカスタマイズします。
ファイルウォッチャーを起動するイベントを指定します:
ソースコードに変更が加えられたらすぐにファイルウォッチャーを呼び出すには、 編集したファイルを自動保存してウォッチャーをトリガーする チェックボックスを選択します。
チェックボックスをオフにすると、保存時( )または GoLand からフォーカスを移動したとき(フレーム非アクティブ時)に File Watcher が起動します。

デフォルトでは、File Watcher は、たとえばブランチをチェックアウトしたときにバージョンコントロールシステムから受信した更新など、保存された変更があると起動します。 このような変更を無視し、GoLand でコードを更新したときのみ File Watcher を呼び出すには、 外部の変更でウォッチャーをトリガーする チェックボックスをオフにします。
File Watcher が GoLand の構文パーサーと連携するかどうかを指定します:
構文エラーに関係なくウォッチャーをトリガーする チェックボックスをオンにすると、File Watcher はファイルの構文上の正確さに関係なく起動します。 ファイルウォッチャーは、 編集したファイルを自動保存してウォッチャーをトリガーする チェックボックスの状態に応じて、更新、保存、フレームの非アクティブ化時に開始されます。
構文エラーに関係なくウォッチャーをトリガーする チェックボックスをオフにすると、File Watcher は構文上無効なファイル内のすべてのトリガを無視し、エラーのないファイルでのみ起動します。
stdout から出力ファイルを作成する チェックボックスを使用して、出力ファイルの生成方法を指定します。
チェックボックスが選択されると、GoLand はネイティブツールの出力
standard output stream (stdout)を読み取り、そこから結果ファイルを生成します。チェックボックスをオフにすると、ツールはその出力を リフレッシュする出力パス フィールドで指定されたファイルに直接書き込みます。
コンソールの表示 リストで、File Watcher がいつコンソールを開くかを選択します。
常時:: このオプションを使用すると、ツールの実行が完了した後にコンソールが常に開きます。
エラー時:: このオプションを使用すると、
Exit codeが0と異なる場合にのみツール実行後にコンソールが開きます。なし:: コンソールをまったく開かないようにするには、このオプションを選択します。
File Watcher によって報告された情報をエディターに表示する
File Watcher で設定したツールが、ファイルや特定の行へのリンク付きでコードに関するエラーや警告を報告した場合、その情報をエディター内で確認できます:
では、インスペクション ファイルウォッチャーの問題 を有効にします。
出力フィルター フィールドの ウォッチャーの編集 ダイアログで、マッチさせたい出力のフォーマットを記述します。 そのためにマクロ
$FILE_PATH$、$LINE$、$MESSAGE$を使用します。\では、中括弧やドットなどの特別なシンボルを使用しないようにする必要があります。$MESSAGE$マクロと一致するテキストがエディターに表示されます。
ファイルウォッチャーの保存、有効化、無効化
新しい File Watcher を保存したら、現在のプロジェクト(レベル リストから プロジェクト を選択)でのみ使用可能にするか、すべてのプロジェクト(グローバル を選択)で使用可能にするかを決定できます。

ファイルウォッチャーを有効または無効にするには、 設定 ダイアログ(Ctrl+Alt+S )を開き、 に移動して、その横にあるチェックボックスをオンまたはオフにします。
定義済み File Watcher が適用できるファイルを開くと、GoLand が File Watcher の有効化を提案します:

ファイルウォッチャーが有効な場合、選択したタイプかつ選択したスコープ内のファイルが変更または保存されると自動的に起動します。 詳細オプションの構成を参照してください。
ファイル監視の実行中にエラーが発生した場合、ファイル監視は自動的に無効になります。 ステータスを復元するには、ファイル監視を手動で有効にします。
保存時に File Watchers を自動的に実行する
変更を 保存すると、変更されたファイルで File Watchers が自動的に実行されるように IDE を設定できます。
Ctrl+Alt+S を押して設定を開き、 を選択します。
File Watcher オプションを有効にして、変更を適用します。
新しいプロジェクトでグローバル File Watchers を有効にする
グローバルFile Watchers は、今後作成するすべての新しいプロジェクトで自動的に有効にすることができます。
新規プロジェクトの設定 ダイアログ( )を開き、 に移動して、必要な File Watchers の横にあるチェックボックスを選択します。
または、 ようこそ画面で 構成 リストから 設定 を選択します。 開いたダイアログで、関連する File Watcher の横にあるチェックボックスを選択します。
File Watcher のトラブルシューティング
File Watcher が無効になっていることを通知するエラーメッセージを含むポップアップが表示される場合があります
起こりうるエラーの一覧は以下の通りです:
報告された問題 | 問題説明 | 回避策 |
|---|---|---|
| ファイルウォッチャーは、このプロジェクトで定義されていないスコープを使用します。 | ウォッチャーをダブルクリックして、使用可能なスコープを選択するか、新しいスコープを作成します。 |
| このプロジェクトは、削除されたグローバル File Watcher を使用します。 | 削除 ボタン |
GoLand は同じ File Watcher タスクを大量に実行します | 例えば VCS から一括更新した後、GoLand は保存したファイルごとに個別の File Watcher タスクを実行します。 | 引数 フィールドにファイル固有のマクロ(例: |
ヒントとトリック
gofumpt を File Watcher として設定する
Ctrl+Alt+S を押して設定を開き、 を選択します。
追加 ボタン (
) をクリックして新しいファイルウォッチャーを追加し、 gofumpt を選択します。
新しいウォッチャーを保存するには、 OK をクリックします。
