diff options
author | Adriaan Moors <adriaan.moors@typesafe.com> | 2015-04-22 17:25:04 -0700 |
---|---|---|
committer | Adriaan Moors <adriaan.moors@typesafe.com> | 2015-04-22 17:25:04 -0700 |
commit | 8f99b5819449c01d89a918069029f7898c56e35a (patch) | |
tree | 11524149398cde62605c80a012c61e7ab3b5bbaf /src | |
parent | 540b18fb68a0210b187e595622c31f20b2c6f581 (diff) | |
parent | ad502b350fecca7a23b46dea300e2a543a248f97 (diff) | |
download | scala-8f99b5819449c01d89a918069029f7898c56e35a.tar.gz scala-8f99b5819449c01d89a918069029f7898c56e35a.tar.bz2 scala-8f99b5819449c01d89a918069029f7898c56e35a.zip |
Merge pull request #4462 from som-snytt/issue/badtab
SI-9275 Fix row-first display in REPL
Diffstat (limited to 'src')
-rw-r--r-- | src/repl/scala/tools/nsc/interpreter/ConsoleReaderHelper.scala | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/src/repl/scala/tools/nsc/interpreter/ConsoleReaderHelper.scala b/src/repl/scala/tools/nsc/interpreter/ConsoleReaderHelper.scala index d8efcda8b5..a8d537e314 100644 --- a/src/repl/scala/tools/nsc/interpreter/ConsoleReaderHelper.scala +++ b/src/repl/scala/tools/nsc/interpreter/ConsoleReaderHelper.scala @@ -112,8 +112,12 @@ trait VariColumnTabulator extends Tabulator { def layout(ncols: Int): Option[(Int, Seq[Int], Seq[Seq[String]])] = { val nrows = items.size /% ncols val xwise = isAcross || ncols >= items.length - def maxima(sss: Seq[Seq[String]]) = - (0 until (ncols min items.size)) map (i => (sss map (ss => ss(i).length)).max) + // max width item in each column + def maxima(rows: Seq[Seq[String]]) = + (0 until (ncols min items.size)) map { col => + val widths = for (r <- rows if r.size > col) yield r(col).length + widths.max + } def resulting(rows: Seq[Seq[String]]) = { val columnWidths = maxima(rows) map (_ + marginSize) val linelen = columnWidths.sum @@ -124,9 +128,10 @@ trait VariColumnTabulator extends Tabulator { else if (xwise) resulting((items grouped ncols).toSeq) else { val cols = (items grouped nrows).toList - val rows = for (i <- 0 until nrows) yield - for (j <- 0 until ncols) yield - if (j < cols.size && i < cols(j).size) cols(j)(i) else "" + val rows = + for (i <- 0 until nrows) yield + for (j <- 0 until ncols) yield + if (j < cols.size && i < cols(j).size) cols(j)(i) else "" resulting(rows) } } |