我希望能够关闭特定的编译器警告,但仅限于项目中的单个文件。这可能吗?
上下文是我有一个源文件,它调用外部宏库来生成适应的arg警告。我发现我可以通过更改build.sbt
文件消除这些警告:
scalacOptions ++= Seq("-Xlint:-adapted-args,_" /*, ... */)
但是,这会全局关闭警告,而我只希望将其关闭以引发它们的单个文件。
我没有幸运地寻找下列任何我认为可能存在的解决方案:
build.sbt
文件scalastyle:on/off
注释@unchecked
那么,对于不同的文件,甚至是有限的代码区域,是否有任何方法可以使用不同的linting选项?
答案 0 :(得分:1)
期望人们会编写一个自定义Reporter
来过滤掉不需要的警告。
很容易编写一个按文件名过滤的文件,也许是白名单。
错误/警告API提供文字Position
。对position.lineContent
或IGNORE
之类的魔术评论标记进行SUPPRESS
分析也很容易,这不像SuppressWarnings
注释那样方便,但很容易实现。
编译器询问记者是否有错误。
自定义记者使用-Xreporter myclass
指定,或者如果有人写了sbt插件,我也不会感到惊讶。