javascript - Vim 错误格式多行字符串

标签 javascript vim syntastic errorformat flowtype

我正在尝试解析此错误输出 Flow 。在第一个错误中,真正重要的是第二个文件和行号,而不是第一个。我想告诉 vim 使用第二个文件条目。 (所以在这种情况下,位置列表应该跳转到source.js第94行,而不是第20行)

/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

Here's the error format currently defined for flow :它可以工作,只是它使用第一个文件名而不是第二个文件名。

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

尝试的解决方案

我一直在尝试使用多行错误格式,但我不知道我在做什么。阅读 :help errorformat 后,似乎这样的东西应该可以工作,但它只是将整个错误加载到消息中,没有文件/行信息。它还使用第一个条目而不是第三个条目来匹配第二个错误。

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

更新

感谢 lcd047,他指出我没有匹配正确的输出。 Syntastic 将错误格式化如下,全部在一行中:

/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)

那么,新问题,如何匹配第二个位置而不是第一个位置?我想我宁愿忽略第一个位置。

更新答案 - 这有效:

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

最佳答案

您没有获取文件/行信息,因为 %E 指定使用该行的其余部分作为多行消息的开头。

对于初学者来说,尝试将“%Em”更改为“%E%f:%l:%c:%n: %m”,因为您基本上希望保留从错误格式的第一个版本中获取的所有原始数据.

您可能需要将“%Cm”更改为“%+Cm”以捕获错误输出中的所有行。

“%Z%f:%l:%c:%n: %m”看起来不错,应该用在第二行,因为 %E 将捕获第一行。

尝试一下。

关于javascript - Vim 错误格式多行字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30739362/

相关文章:

javascript - 我完全理解这个 javascript 滚动教程吗?

java - 检查jsp中是否存在图像

configuration - 在 Windows 中为 gvim 加载 .vimrc 并更改字体和颜色

ruby-on-rails-3 - Syntastic SASS Checker 中的 undefined variable 错误

vim - 使Syntastic仅关闭错误窗口

c - Syntastic C make 检查器不报告错误

javascript - 我如何处理nodejs中的多个回调返回值?

javascript - 从 Tab Navigator Tab Press 触发类函数调用 - React Native/Navigation

vim - 在 vim 中防止插入模式

vim - 为什么奇怪的字符($p)会出现在 vim 中每个文件的开头?