在小于全局范围内关闭 Scala lint 警告?

Turn off Scala lint warnings at a less-than-global scope?

我希望能够关闭特定的编译器警告,但仅限于我项目中的单个文件。这可能吗?

上下文是我有一个单一的源文件,它调用一个外部宏库,产生适应参数警告。我发现我可以通过更改 build.sbt 文件来消除这些警告:

scalacOptions ++= Seq("-Xlint:-adapted-args,_" /*, ... */)

但是,这会在全局范围内关闭警告,我只希望针对引发它们的单个文件关闭它。

我没有找到任何我认为可能存在的以下可能解决方案:

那么,有什么方法可以让不同的 linting 选项对不同的文件生效,甚至对有限的代码区域生效?

人们希望编写一个自定义 Reporter 来过滤掉不需要的警告。

编写一个按文件名过滤的程序很容易,也许给定一个白名单。

error/warn API 提供文本 Position。将 position.lineContent 解析为魔术注释标记(如 IGNORESUPPRESS)也很容易,这不如 SuppressWarnings 注释方便,但易于实现。

编译器询问记者是否有错误。

自定义报告器由 -Xreporter myclass 指定,否则如果有人编写了 sbt 插件,我不会感到惊讶。