@@ -19,23 +19,27 @@ enum MessageFilter:
1919 case Deprecated => message.isInstanceOf [Diagnostic .DeprecationWarning ]
2020 case Feature => message.isInstanceOf [Diagnostic .FeatureWarning ]
2121 case Unchecked => message.isInstanceOf [Diagnostic .UncheckedWarning ]
22+ case MessageID (errorId) => message.msg.errorId == errorId
2223 case MessagePattern (pattern) =>
2324 val noHighlight = message.msg.message.replaceAll(" \\ e\\ [[\\ d;]*[^\\ d;]" ," " )
2425 pattern.findFirstIn(noHighlight).nonEmpty
25- case MessageID (errorId) => message.msg.errorId == errorId
2626 case SourcePattern (pattern) =>
2727 val source = message.position.orElse(NoSourcePosition ).source()
2828 val path = source.jfile()
2929 .map(_.toPath.toAbsolutePath.toUri.normalize().getRawPath)
3030 .orElse(source.path())
3131 pattern.findFirstIn(path).nonEmpty
32-
32+ case Origin (pattern) =>
33+ message match
34+ case message : Diagnostic .DeprecationWarning => pattern.findFirstIn(message.origin).nonEmpty
35+ case _ => false
3336 case None => false
3437
3538 case Any , Deprecated , Feature , Unchecked , None
3639 case MessagePattern (pattern : Regex )
3740 case MessageID (errorId : ErrorMessageID )
3841 case SourcePattern (pattern : Regex )
42+ case Origin (pattern : Regex )
3943
4044enum Action :
4145 case Error , Warning , Verbose , Info , Silent
@@ -96,6 +100,7 @@ object WConf:
96100 case _ => Left (s " unknown category: $conf" )
97101
98102 case " src" => regex(conf).map(SourcePattern .apply)
103+ case " origin" => regex(conf).map(Origin .apply)
99104
100105 case _ => Left (s " unknown filter: $filter" )
101106 case _ => Left (s " unknown filter: $s" )
0 commit comments