格式化通过vim中的errorformat解析的文件名

时间:2013-07-11 13:54:00

标签: android vim gradle android-studio

我正在尝试编写一个errorformat来检测使用新的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

正如您所看到的,错误显示了构建文件夹中的文件,并且其中包含构建类型( debug )。

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

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

1 个答案:

答案 0 :(得分:0)

您可以转换QuickFixCmdPost上的quickfix列表(使用getqflist()setqflist(),使用filename属性中的正确文件),或者将脚本附加到{ {1}}转换输出(例如使用'makeprg')。

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