【GoLand教程】GoLand 如何配置 File Watcher ?

File Watcher是一个 GoLand 工具,当您在 IDE 中更改或保存文件时,它允许您自动运行编译器、格式化程序或 linter 等命令行工具。
File Watcher有两个专门的代码检查:
- File Watcher可用检查在预定义File Watcher适用的每个文件中运行。如果项目没有配置相关的 File Watcher,GoLand 建议添加一个。
- File Watcher 问题检查由正在运行的File Watcher 调用,并突出显示特定于它的错误。
您可以使用其中一个可用模板或从头开始配置File Watcher。已配置的 File Watcher 可以保存在您的项目设置或 IDE 设置中,并在不同的项目中使用。下图列出了文件观察程序的预定义模板。您不能修改预定义模板的列表。
请注意,在 GoLand 中使用其中一些工具需要您在Settings/Preferences |上安装插件。
创建File Watcher
- 在Settings/Preferences对话框 ( Ctrl+Alt+S) 中,单击Tools下的File Watchers。File Watchers 页面打开,显示已在此项目和 IDE 中配置的 File Watchers 列表。
- 单击并选择要从中创建File Watcher的预定义模板。选择取决于您要使用的工具。要使用不在列表中的工具,请选择自定义。“新建观察者”对话框打开。
- 在名称字段中,输入文件观察程序的名称。默认情况下,GoLand 会建议所选预定义模板的名称。
配置输入文件的预期类型和位置
使用Files to watch区域中的控件来定义要应用 File Watcher 的文件范围。
- 从文件类型列表中,选择预期的输入文件类型。File Watcher 将仅将此类文件视为分析和处理的主题。文件类型是根据文件类型和文件扩展名之间的关联来识别的。
默认情况下,该字段根据所选的预定义模板显示文件类型。
- 选择File Watcher适用的范围。
这些文件中的更改将立即或在保存或帧停用时调用File Watcher,具体取决于自动保存编辑文件的状态以触发观察器复选框。
从列表中选择一个预定义范围。对于项目级File Watcher,您还可以单击以在打开的“范围”对话框中配置自定义范围。
- 所有地方:下面列出的所有范围。
- 项目文件:项目内的所有文件
- 划痕和控制台:文件工具窗口(查看|工具窗口|文件)中的所有划痕和控制台。
- 最近查看的文件:最近在编辑器中查看的所有文件。
- 最近更改的文件:编辑器中最近更改的所有文件。
- 模块:当前模块中的所有文件。
- 当前文件:在活动编辑器选项卡中打开的文件。
- All Changed Files:所有已更改的文件,即与所有现有更改列表关联的所有文件。
- 默认更改列表:与更改列表关联的所有文件
Default
。
或者,在打开的范围对话框中单击并配置自定义范围。
配置与外部工具的交互
在Tool to run on changes区域中,指定要使用的工具、要传递给它的参数、预期的输出文件类型等。
- 在程序字段中,指定工具可执行文件的路径(.exe、.cmd、.bat或其他,具体取决于特定工具)。
- 要使用程序文件名而不是其完整路径,请将其文件夹的路径添加到系统环境变量 PATH。
- 在 Windows 上,您可以跳过.com、.exe、.cmd或.bat扩展名。
- 要使用jar存档,请指定它的绝对路径。或者,要使用相对路径,请将其父文件夹添加到Appearance & Behavior |上的GoLand 路径变量中。IDE 设置的Path VariablesCtrl+Alt+S页面。
- 在参数字段中,定义要传递给工具的参数。
参数通常使用宏来指定,例如,$FileName$
或$FileNameWithoutExtension$
,将被实际文件名替换。
手动键入宏或单击并从打开的宏对话框中的列表中选择相关模式。
指定参数时,请遵循以下规则:
- 使用空格作为分隔符。
- 如果参数包含空格,请将它们或整个参数括在双引号中:
some" "arg
或"some arg"
.- 如果参数包含双引号,请使用反斜杠对其进行转义:
-Dmy.prop=\"quoted_value"\
.
- 在刷新的输出路径字段中,指定工具存储其输出的文件:生成的源代码、源映射和依赖项。基于这些设置,GoLand 识别通过编译生成的文件。
请注意,更改输出路径以刷新字段中的值不会使工具将其输出存储在其他位置。如果您仍然需要这样做,请在“参数”字段中指定所需的自定义输出位置:键入以冒号作为分隔符的输出路径并使用宏。
输出路径通常使用宏指定。手动键入路径或单击并从列表中选择相关模式。
- 展开工作目录和环境变量隐藏区域。
- 定义环境变量。例如,
PATH
为启动您正在配置的工具但未在其路径中引用的工具指定变量。 - 在工作目录字段中,指定工具将应用到的目录。
因为该工具总是在文件的上下文中调用,所以默认工作目录是当前文件的目录。默认工作目录是通过$FileDir$
宏在所有预定义模板中指定的。要指定自定义工作目录,请在字段中键入它的路径,或单击并在“选择路径”对话框中选择目录,或单击并从“宏”对话框的列表中选择所需的宏。
如果您将工作目录字段留空,GoLand 将使用调用 File Watcher 的文件目录。
配置高级选项
在“高级选项”区域中,自定义File Watcher的默认行为。
指定将调用 File Watcher 的事件:
- 要在对源代码进行任何更改后立即调用File Watcher,请选中自动保存编辑的文件以触发观察器复选框。
清除该复选框后,File Watcher会在保存 ( File | Save All ) 或您从 GoLand 移动焦点时启动(在帧停用时)。
- 默认情况下,File Watcher会在任何保存的更改上唤醒,包括在您签出分支时从版本控制系统收到的更新。要忽略此类更改并仅在您更新 GoLand 中的代码时调用 File Watcher,请清除Trigger the watcher on external changes复选框。
指定是否希望 File Watcher 与 GoLand 语法解析器交互:
- 选中“不考虑语法错误触发观察程序”复选框后,无论文件的语法正确性如何,文件观察程序都会启动。File Watcher将在更新、保存或帧停用时启动,具体取决于自动保存编辑文件的状态以触发观察器复选框。
- 清除不考虑语法错误的触发器观察程序复选框后,文件观察程序将忽略文件中语法无效的所有触发器,并仅在无错误文件中启动。
使用从标准输出创建输出文件复选框来指定您希望如何生成输出文件。
- 选中该复选框后,GoLand 会读取本机工具的输出
standard output stream (stdout)
并从中生成结果文件。 - 清除该复选框后,该工具会将其输出直接写入“要刷新的输出路径”字段中指定的文件。
- 选中该复选框后,GoLand 会读取本机工具的输出
在显示控制台列表中,选择您希望File Watcher打开控制台的时间。
- 始终:使用此选项,控制台始终在工具执行完成后打开。
- 出错时:使用此选项,仅当
Exit code
不同于0
. - 从不:选择此选项以完全禁止打开控制台。
在编辑器中显示 File Watcher 报告的信息
如果 File Watcher 中配置的工具通过文件和特定行的链接报告有关您的代码的错误或警告,您可以在编辑器中看到此信息:
- 在设置/首选项 | 编辑 | 检查,启用检查File Watcher Problems。
- 在Edit Watcher对话框的Output Filters字段中,描述要匹配的输出格式。为此使用宏、和。您需要避免使用大括号和点等特殊符号。与宏匹配的文本将显示在编辑器中。
$FILE_PATH$
`$LINE$$MESSAGE$
`$MESSAGE$
保存、启用和禁用File Watcher
当您在安全模式下打开项目时,文件观察程序不会启动。
保存新的 File Watcher 后,您可以决定它是仅在当前项目中可用(从Level列表中选择Project)还是对所有项目(选择Global)可用。
- 要启用或禁用File Watcher,请打开设置/首选项对话框 ( Ctrl+Alt+S),转到工具 | File Watchers,然后选中或清除它旁边的复选框。
启用File Watcher后,一旦所选类型和所选范围内的文件发生更改或保存,它就会自动启动。
如果在 File Watcher 运行时发生错误,File Watcher 将自动禁用。要恢复状态,请手动启用File Watcher。
保存时自动运行文件观察程序
您可以将 IDE 配置为在保存更改时自动在修改后的文件中运行文件观察程序。
- 按Ctrl+Alt+S打开 IDE 设置并选择工具 | 保存操作。
- 启用File Watcher选项并应用更改。
为新项目启用全局File Watcher
可以在您将来创建的所有新项目中自动启用全局文件观察程序。
- 打开新项目的设置对话框(文件|新项目设置|新项目的设置/首选项),转到工具| File Watchers,然后选中所需的 File Watchers 旁边的复选框。
- 或者,在欢迎屏幕上,从配置列表中选择设置。在打开的对话框中,选中相关File Watcher旁边的复选框。
文件观察程序故障排除
首选项/设置 |列表中的File Watcher旁边可能有一条红色错误消息。工具 | 文件观察者。
以下是可能的错误列表:
报告的问题 | 问题描述 | 解决方法 |
---|---|---|
Unknown Scope error | File Watcher 使用了此项目中未定义的范围。 | 双击观察者并选择一个可用范围或创建一个新范围。 |
Not found error | 该项目使用已删除的全局File Watcher。 | 使用Remove按钮从列表中删除观察者, |
GoLand 运行许多相同的 File Watcher 任务 | 例如,从您的 VCS 进行批量更新后,GoLand 会为每个保存的文件运行单独的File Watcher任务。 | 在参数字段中添加特定于文件的宏(如&FileNameWithoutExtension& ) |