1

のこのエラー出力を解析しようとしていますFlow。最初のエラーで重要なのは、最初のファイルではなく、2 番目のファイルと行番号です。2 番目のファイル エントリを使用するように vim に指示したいと思います。(したがって、この場合、ロケーション リストは source.js の 20 行目ではなく 94 行目にジャンプする必要があります)

/Users/asdf/source.js:20:22,34:1: property hidden
Property not found in
/Users/asdf/source.js:94:10,106:3: object literal

/Users/asdf/source.js:25:14,18: identifier strin
Could not resolve name

flow に対して現在定義されているエラー形式は次のとおりです。

let errorformat =
    \ '%f:%l:%c:%n: %m,' .
    \ '%f:%l:%c: %m'

試みられた解決策

複数行のエラー形式を使用しようとしていますが、何をしているのかわかりません。を読んだ後:help errorformat、このようなものが機能するはずですが、ファイル/行情報なしでエラー全体をメッセージにロードするだけです。また、3 番目ではなく最初のエントリを使用して 2 番目のエラーと一致します。

let errorformat =
    \ '%E%m,%C%m,%Z%f:%l:%c:%n: %m,' .
    \ '%f:%l:%c:%n: %m,' .
    \ '%f:%l:%c: %m'

アップデート

正しい出力と一致していないことを指摘してくれた lcd047 に感謝します。Syntastic はエラーを次のようにフォーマットし、すべて 1 行に記述します。

/Users/seanhess/projects/serials/web/app/model/source.js:20:22: property hidden Property not found in object literal (/Users/seanhess/projects/serials/web/app/model/source.js:94:10,106:3)

新しい質問ですが、最初の場所ではなく 2 番目の場所を一致させるにはどうすればよいですか? 最初の場所は無視した方がいいと思います。

回答を更新 - これはうまくいきました:

let errorformat =
    \ '%.%#: %m (%f:%l:%c\,%.%#),' .
    \ '%f:%l:%c:%n: %m,' .
    \ '%f:%l:%c: %m'
4

1 に答える 1

1

%E は行の残りを複数行メッセージの先頭として使用するように指定しているため、ファイル/行情報を取得していません。

「%Em」を「%E%f:%l:%c:%n: %m」に変更してみてください。基本的には、最初のバージョンの errorformat から取得したすべての元のデータを保持したいからです。

「%Cm」を「%+Cm」に変更して、エラー出力のすべての行をキャプチャすることができます。

「%Z%f:%l:%c:%n: %m」は見栄えがよく、%E が最初の行をキャッチするため、2 行目に使用する必要があります。

それを試してみてください。

于 2015-06-09T18:21:51.700 に答える