代码检查与测试
Aider 能够在每次修改代码后自动执行代码检查(linting)和测试。 这有助于发现并修复由 AI 编辑引入的问题。
代码检查
Aider 内置了对大多数流行语言的检查器, 会自动对这些语言的代码进行检查。
您也可以通过 --lint-cmd <cmd>
参数指定自己喜欢的检查工具。
该检查命令应能接受待检查文件的文件名作为参数。
如果存在检查错误,aider 期望该命令能在 stdout/stderr 输出错误信息,
并返回非零退出码。这是大多数检查工具的正常工作方式。
默认情况下,aider 会检查所有它编辑过的文件。
您可以使用 --no-auto-lint
参数禁用此功能。
按语言指定检查器
要为不同编程语言指定不同的检查器,可使用 --lint "语言: 命令"
格式。
代码格式化”检查器”
很多人会将代码格式化工具作为检查器使用,用于美化代码格式。 这些工具在修改代码后有时会返回非零退出码, 这会误导 aider 认为存在需要修复的实际检查错误。
您可以通过将格式化工具封装在如下 shell 脚本中, 并将该脚本设为检查器来使用格式化功能。
#!/bin/bash
# 运行两次
#
# 第一次运行可能会重新格式化/修改文件,因此会以非零状态退出
#
# 第二次运行时,除非存在超出已完成代码格式化的实际问题,
# 否则不会执行任何操作并以0退出
pre-commit run --files "$@" >/dev/null \
|| pre-commit run --files "$@"
测试
您可以通过 /test <测试命令>
来运行测试。
Aider 会不带任何参数地运行测试命令。
如果测试出现错误,aider 期望该命令
能将错误信息打印到 stdout/stderr
并返回非零的退出码。
当命令返回非零退出码时, aider 会尝试修复这些错误。
您可以通过 --test-cmd <测试命令>
和
--auto-test
开关来配置 aider,
使其在每次 AI 编辑代码后自动运行测试套件。
编译型语言
如果您希望 aider 在每次编辑后编译代码, 可以使用 lint 和 test 命令来实现。
- 您可能希望重新编译每个被修改的文件
以检查编译错误。
为此,
可以提供一个既能进行代码检查又能编译文件的
--lint-cmd
。 您可以为此创建一个小型 shell 脚本。 - 您可能希望在文件编辑后重新构建整个项目
以检查构建错误。
为此,
可以提供一个既能构建又能测试项目的
--test-cmd
。 您可以为此创建一个小型 shell 脚本, 或者简单地使用类似--test-cmd "dotnet build && dotnet test"
的命令。
手动运行代码
您可以在聊天中使用 /run
命令来运行代码,
并选择性地将输出分享给 aider。
这在分享错误信息或向 aider 展示代码输出
以请求修改或更正时非常有用。
Aider v0.43.5-dev
/run python myscript.py
Traceback (most recent call last):
File "myscript.py", line 22, in \<module\
raise ValueError("something bad happened")
ValueError: something bad happened
将输出添加到聊天中? y