diff --git a/src/main/scala/com/dscleaver/sbt/quickfix/QuickFixLogger.scala b/src/main/scala/com/dscleaver/sbt/quickfix/QuickFixLogger.scala index 686ae5c..6a8b997 100644 --- a/src/main/scala/com/dscleaver/sbt/quickfix/QuickFixLogger.scala +++ b/src/main/scala/com/dscleaver/sbt/quickfix/QuickFixLogger.scala @@ -3,10 +3,10 @@ package com.dscleaver.sbt.quickfix import sbt._ object QuickFixLogger { - def append(output: File, prefix: String, message: String): Unit = + def append(output: File, prefix: String, message: String): Unit = IO.append(output, "[%s] %s\n".format(prefix, message)) - def append(output: File, prefix: String, file: File, line: Int, message: String): Unit = + def append(output: File, prefix: String, file: File, line: Int, message: String): Unit = append(output, prefix, "%s:%d: %s".format(file, line, message)) } @@ -21,18 +21,19 @@ class QuickFixLogger(val output: File, vimExec: String, enableServer: Boolean) e case _ => handleDebugMessage(message) } - def handleDebugMessage(message: String) = + def handleDebugMessage(message: String) = { + if (message.toLowerCase.contains("initial source changes:")) { + IO.delete(output) + IO.touch(List(output)) + } + if (enableServer && message.toLowerCase.contains("compilation failed")) { call(vimExec, ":cfile %s".format(output.toString)) } - - def handleInfoMessage(message: String) = { - if(message startsWith "Compiling") { - IO.delete(output) - IO.touch(List(output)) - } else () } + def handleInfoMessage(message: String) = () + def handleErrorMessage(message: String) = append(output, "error", message) def handleWarnMessage(message: String) = append(output, "warn", message)