From fff6b044bc88e58dcd083eb8807dd7c7815444ff Mon Sep 17 00:00:00 2001 From: Thomas Droxler Date: Fri, 4 Jan 2019 13:27:21 +0100 Subject: [PATCH] Use `ListBuffer` instead of `List` in `LanguageServerReporter` In order to have a better data structure for appending --- .../sbt/internal/server/LanguageServerReporter.scala | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/main/src/main/scala/sbt/internal/server/LanguageServerReporter.scala b/main/src/main/scala/sbt/internal/server/LanguageServerReporter.scala index 1f8cfd290..d68e12e96 100644 --- a/main/src/main/scala/sbt/internal/server/LanguageServerReporter.scala +++ b/main/src/main/scala/sbt/internal/server/LanguageServerReporter.scala @@ -40,7 +40,7 @@ class LanguageServerReporter( ) extends ManagedLoggedReporter(maximumErrors, logger, sourcePositionMapper) { lazy val exchange = StandardMain.exchange - private[sbt] lazy val problemsByFile = new mutable.HashMap[File, List[Problem]] + private[sbt] lazy val problemsByFile = new mutable.HashMap[File, mutable.ListBuffer[Problem]] override def reset(): Unit = { super.reset() @@ -51,8 +51,8 @@ class LanguageServerReporter( val pos = problem.position pos.sourceFile.toOption foreach { sourceFile: File => problemsByFile.get(sourceFile) match { - case Some(xs: List[Problem]) => problemsByFile(sourceFile) = xs :+ problem - case _ => problemsByFile(sourceFile) = List(problem) + case Some(xs: mutable.ListBuffer[Problem]) => problemsByFile(sourceFile) = xs :+ problem + case _ => problemsByFile(sourceFile) = mutable.ListBuffer(problem) } } super.log(problem) @@ -93,7 +93,7 @@ class LanguageServerReporter( val pos = problem.position pos.sourceFile.toOption foreach { sourceFile: File => problemsByFile.get(sourceFile) match { - case Some(xs: List[Problem]) => + case Some(xs: mutable.ListBuffer[Problem]) => val ds = toDiagnostics(xs) val params = PublishDiagnosticsParams(IO.toURI(sourceFile).toString, ds) exchange.notifyEvent("textDocument/publishDiagnostics", params) @@ -102,7 +102,7 @@ class LanguageServerReporter( } } - private[sbt] def toDiagnostics(ps: List[Problem]): Vector[Diagnostic] = { + private[sbt] def toDiagnostics(ps: Seq[Problem]): Vector[Diagnostic] = { for { problem <- ps.toVector pos = problem.position