如果我运行
dotnet build
来构建 .NET 项目,在输出末尾,我会看到一条消息,告诉我编译器在构建项目时生成了多少警告和错误。我在下面附上了一个例子。
如何使用 GHC 获取错误计数?我正在使用 stack,它使用 cabal,而 cabal 又使用 GHC。任何这些级别的解决方案都可以。
我可以通过将
stack build
的输出传输到 vim 并使用 vim 中的一些搜索功能来获取警告或错误的计数。然而,我并不总是能得到正确的结果。如果我的源代码包含“警告”或“错误”一词,我的搜索结果可能会受到影响。
如果可能,我想要一种简单的方法来获取错误和警告计数,例如命令行标志或简单的包装器。我浏览了 ghc 的手册页,发现没有对应的标志。
我已经通读了这个类似的 gcc 堆栈溢出帖子。这个问题的答案并不是很令人鼓舞,但我很好奇是否还有其他人可以分享一些见解,我希望 GHC 有一个不同的故事。
注意:我使用的是 bash shell,因此请将任何 shell 脚本调整为 bash。
-ddump-json
标志生成 JSON 格式的输出,然后使用 jq
过滤严重性。最后,您有了用于计数的旧式 wc -l
。例如,这就是获取错误数量的方法:
ghc Main.hs -ddump-json | jq 'select(.severity == "SevError") .severity' | wc -l