问题标签 [errorformat]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
7 回答
6466 浏览

visual-studio - Visual Studio 的 Vim 错误格式

我想将 Vim 的快速修复功能与 Visual Studio 的 devenv 构建过程或 msbuild 的输出一起使用。

我创建了一个名为 build.bat 的批处理文件,它执行 devenv 构建,如下所示:

在 vim 中,我将 :make 命令指向该批处理文件:

当我现在运行 :make 时,构建成功执行,但是错误不会被解析出来。因此,如果我运行 :cl 或 :cn,我最终会看到 devenv /Build 的所有输出。我应该只看到错误。

我已经尝试了许多不同的错误格式设置,这些设置在网络上的各个站点上都找到了,但没有一个能够正确解析出错误。这是我尝试过的一些:

当然,我已经尝试过 Vim 的默认设置。

下面是 build.bat 的一些示例输出:

更新: 看起来使用 msbuild 而不是 devenv 可能是正确的方法(根据 Jay 的评论)。

使用 msbuild,makeprg 将是:

样本输出应该是:

看起来这里的棘手部分可能在于路径是相对于 .csproj 文件,而不是 .sln 文件,它是 Vim 中的当前目录,位于 .csproj 文件上方的一个目录。

回答: 我想通了...

这将捕获 devenv /Build 和 msbuild 的输出。但是,msbuild 有一个问题。默认情况下,它的输出不包括完整路径。要解决此问题,您必须将以下行添加到您的 csproj 文件的主 PropertyGroup:

0 投票
2 回答
978 浏览

vim - 用于 PL/SQL 的 Vim 错误格式 / efm

我试图让标准的 vim :clist, :cope 功能与 vim 一起工作。

具体来说,我正在尝试(但失败)从编译器输出中捕获文件名。

我的 PL/SQL 代码编译好了(好吧,当没有错误时 =),我有 errorformat 拾取错误消息、行号和列号,但我无法获取文件名(vim 需要哪个才能跳转到文件)。

这是我能想到的最好的错误格式:

这是编译器的输出。它只有第一行的文件名(我尝试使用 +P[%f].

输出:

:clist 之后显示错误已被捕获,但不是文件名: :clist

有谁知道我怎样才能让这个文件名?

谢谢戴夫·斯迈利

0 投票
1 回答
4337 浏览

vim - Vim 错误格式

我阅读了文档,但更加困惑。
我有编译器生成的以下错误:

我知道如何检测给出错误行的行,但是我在错误列表中获得了大量额外的无用信息,并且错误消息被分成两行,我更愿意合并。

我的起始错误格式是:

既然我们这样做了,有没有一种快速的方法来测试 efm 而无需一直运行 make?

0 投票
5 回答
1451 浏览

vim - Vim 错误格式和 jslint

我正在尝试让 makeprg 和 errorformat 与 VIM 和 jslint 一起使用,并且似乎无法在我的一生中获得正确的错误格式......我正在使用 jslint 的 nodejs 版本,它产生的结果如下:

我基本上想匹配行号、列和错误,并使用当前文件作为文件名。有人知道怎么做吗?

需要明确的是,我正在寻找错误格式以使该命令正常工作。目前我的 .vimrc 文件有

这只是不工作(jslint工作正常,但错误格式是错误的)......

0 投票
4 回答
1935 浏览

vim - Vim:错误格式匹配一切

我正在尝试将以下错误与efm

错误消息可以是任何内容(即它并不总是与AssertionError: .*or.*Error: .*格式匹配)。一般格式为:

我的问题是错误消息与任何行匹配;我需要将错误消息限制为仅一行,并且仅在其后跟匹配的“at”行时才匹配。

我尝试了以下方法efm

这几乎可以工作,但除了错误之外,它还匹配状态行(例如,错误之前和之后的非错误)。我怎样才能强制%E%m ... %Z总共只有两行(一条用于错误消息,一条用于at行)?makeprg如果需要,我可以使用标准的 UNIX 工具。

0 投票
3 回答
1948 浏览

vim - Vim 的快速修复列表的错误格式中的错误类型是什么?

我不确定%tVim 的快速修复列表中的格式说明符。它如何影响快速修复缓冲区的行为/显示?

我试图用以下测试文件找出它:

首先是以下内容errorformat

有了这个errorformat,我可以使用:cgetfile test.out并跳转到中的行号foo.h,但是使用以下内容errorformat

改变的只是现在我在快速修复缓冲区中的行号之后看到一些空格,例如我看到(1 之后的两个空格)

代替

所以我有两个问题:

  1. 我怎么了errorformat
  2. 如果可以提取错误类型,我应该查看什么?
0 投票
2 回答
497 浏览

vim - jslint vim 错误格式

我在我的系统上安装了带有 npm的jslint 。

它产生以下格式的错误消息:

我为 Vim 编写了一个编译器插件来解析错误消息,但我无法弄清楚errorformat. 我的编译器文件中现在有以下内容:

哪个 AFAIK 应该执行以下操作:

  • %*[\ ]-- 跳过行首的空格
  • %n-- 匹配错误号
  • \-- 跳过一个空格
  • %l-- 匹配行号
  • \,-- 跳过逗号
  • %c-- 匹配列号
  • :-- 跳过冒号
  • \-- 再次跳过空格
  • %m-- 匹配错误信息
  • ,- 新队
  • %-G%.%#-- 跳过所有其他

它运行jslint显示消息但:clist命令不显示任何错误。

我错过了什么?

0 投票
1 回答
651 浏览

vim - Vim 错误格式:使用 %D 更改目录

errorformat当当前目录是带有错误文件的目录的同级目录时,我正在努力寻找要使用的正确 Vim 。例如:

Vim 的makeprg选项设置为执行errorformat/spec. 我从errorformat/model. Vim 设置为使用当前文件的目录作为工作目录。

为了测试,我正在运行以下errorformat/model/errorformat.vim

如您所见,它在兄弟目录中运行一个 Ruby 文件

想要的效果是,当我从不同的目录运行规范时,Vim 将使用%Dinerrorformat让我打开规范文件。但它不起作用。特别是,我似乎无法%D%f做到我所期望的。当我运行这个测试时,QuickFix 窗口显示

双条表示%D%f部分errorformat未识别输出。这似乎也阻止了下一行被该%f:%l部分解释。

一定有一些非常简单的东西我错过了!

0 投票
1 回答
5419 浏览

vim - 如何将 cscope 输出放在 Vim quickfix 窗口中?

我想将 cscope 的输出重定向到 Vim quickfix 窗口。胶水部分很容易,但我目前停留在错误格式。这是 cscope 输出的示例(cscope -L -1 bar):

这意味着在 foo() 内部,在 abc.cpp 的第 25 行有一个对 bar() 的调用。

efm = %f\ %*[^\ ]\ %l\ %m工作,但范围信息丢失。例如:

我想要的是在 quickfix 窗口中包含范围,如下所示:

是否可以仅使用错误格式来执行此操作,或者我是否需要编写一个脚本来操作输出,然后再将其提供给 Vim?

0 投票
1 回答
647 浏览

syntax-error - 如何编写多行错误格式字符串?

我想为vim-opencl 插件编写 OpenCL 语法检查器。OpenCL 编译器对输出错误进行了一些奇怪的格式化。有两种类型的错误。

正常(带有小错误说明):

并且错误解释中的换行符不正常:

因此,麻烦在于将第二种情况下的损坏错误解释和第一种情况下的正常错误处理的两部分串联起来。

我使用syntastic作为通用语法检查器。现在我有这样的代码:

因此,第一个和第二个错误如下所示:

几乎没问题(尤其是在第二种情况下),但我不知道如何做到这一点:

或者至少是这样的:

你有什么想法吗?

UPD。更新了错误格式和期望