1

新しい gradle ビルド システム ( http://tools.android.com/tech-docs/new-build-system )を使用して Android アプリケーションをコンパイルするときにエラーを検出するために、errorformat を作成しようとしています。

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のヘルプを読み、QuickfixCmdPostquickfix BufReadPostの自動コマンドを使ってquickfix出力を変更する方法を見つけましたが、これらはquickfix windowがerrorformatによって解析された後に有効になります。その結果、クイックフィックス ウィンドウに正しいソース ファイルが表示されますが、vim は依然として間違ったファイルにジャンプします。

errorformat によって解析された後にファイル (%f) を変更する方法はありますか? ビルドファイルではなく元のソースファイルを印刷するようにgradleに指示する方法はありますか?

4

1 に答える 1

0

You could either transform the quickfix list on QuickFixCmdPost (using getqflist() and setqflist(), with the correct file in the filename attribute), or append a script to 'makeprg' that transforms the output (e.g. using sed).

But I agree with you that the tool output is wrong and should be fixed (to state the original files, not temporary copies), instead of working around this in Vim.

于 2013-07-12T08:48:13.583 に答える