1

我正在尝试编写一个错误格式来在使用新的 gradle 构建系统(http://tools.android.com/tech-docs/new-build-system)编译 android 应用程序时检测错误。

errorformat=%f:%l:\ error:\ %m

此错误格式捕获 XML 错误,但在 gradle 中,输出中的文件名不是原始源文件名,而是一个临时构建文件:

/home/user/Studio/myapp/build/res/all/debug/layout/add_child_dialog.xml:7: error: Error parsing XML: unbound prefix

原始源文件为:

/home/user/Studio/myapp/res/layout/add_child_dialog.xml:7: error: Error parsing XML: unbound prefix

如您所见,错误显示构建文件夹内的文件,其中包含构建类型(调试)。

我阅读了 quickfix-window 帮助并找到了使用QuickfixCmdPostquickfix BufReadPost 自动命令修改 quickfix 输出的方法,但是这些在 quickfix 窗口被错误格式解析后生效。结果,我可以在 quickfix 窗口上看到正确的源文件,但 vim 仍然跳转到错误的文件。

有没有办法在错误格式解析后修改文件(%f)?有没有办法告诉 gradle 打印原始源文件而不是构建源文件?

4

1 回答 1

0

您可以转换快速修复列表QuickFixCmdPost(使用getqflist()and setqflist(),在filename属性中使用正确的文件),或者将脚本附加到'makeprg'转换输出(例如使用sed)。

但我同意你的观点,工具输出是错误的,应该修复(说明原始文件,而不是临时副本),而不是在 Vim 中解决这个问题。

于 2013-07-12T08:48:13.583 回答