@@ -54,21 +54,25 @@ object Pylint extends Tool {
5454 private implicit lazy val writer = Json .reads[Issue ]
5555
5656 private def parseLine (line : String ) = {
57- val LineRegex = """ (.*?)###(.*?)###(.*?)###(.*?)""" .r
57+ val LineRegex = """ (.*?)###(\d*?)###(.*?)###(.*?)""" .r
58+
59+ def createIssue (filename : String , lineNumber : String , message : String , patternId : String ) = {
60+ // If the pylint returns no line put the issue in the first line
61+ val issueLine = if (lineNumber.nonEmpty) lineNumber.toInt else 1
62+ Issue (SourcePath (filename),
63+ ResultMessage (message),
64+ PatternId (patternId),
65+ ResultLine (issueLine))
66+ }
67+
5868 line match {
5969 case LineRegex (filename, lineNumber, message, patternId) if message.contains(" invalid syntax" ) =>
6070 val fileError = FileError (SourcePath (filename),
6171 Option (ErrorMessage (message)))
62- val issue = Issue (SourcePath (filename),
63- ResultMessage (message),
64- PatternId (patternId),
65- ResultLine (lineNumber.toInt))
72+ val issue = createIssue(filename, lineNumber, message, patternId)
6673 Option (List (fileError, issue))
6774 case LineRegex (filename, lineNumber, message, patternId) =>
68- Option (List (Issue (SourcePath (filename),
69- ResultMessage (message),
70- PatternId (patternId),
71- ResultLine (lineNumber.toInt))))
75+ Option (List (createIssue(filename, lineNumber, message, patternId)))
7276 case _ =>
7377 Option .empty
7478 }
0 commit comments