diff options
author | Paul Phillips <paulp@improving.org> | 2013-09-18 00:09:46 -0700 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2013-09-18 07:13:38 -0700 |
commit | f4267ccd96a9143c910c66a5b0436aaa64b7c9dc (patch) | |
tree | 174861715807c23ba332f78769a9f7e1377b7f02 /src/reflect/scala/reflect/internal/util/StringOps.scala | |
parent | d45a3c8cc8e9f1d95d797d548a85abd8597f5bc7 (diff) | |
download | scala-f4267ccd96a9143c910c66a5b0436aaa64b7c9dc.tar.gz scala-f4267ccd96a9143c910c66a5b0436aaa64b7c9dc.tar.bz2 scala-f4267ccd96a9143c910c66a5b0436aaa64b7c9dc.zip |
Cull extraneous whitespace.
One last flurry with the broom before I leave you slobs to code
in your own filth. Eliminated all the trailing whitespace I
could manage, with special prejudice reserved for the test cases
which depended on the preservation of trailing whitespace.
Was reminded I cannot figure out how to eliminate the trailing
space on the "scala> " prompt in repl transcripts. At least
reduced the number of such empty prompts by trimming transcript
code on the way in.
Routed ConsoleReporter's "printMessage" through a trailing
whitespace stripping method which might help futureproof
against the future of whitespace diseases. Deleted the up-to-40
lines of trailing whitespace found in various library files.
It seems like only yesterday we performed whitespace surgery
on the whole repo. Clearly it doesn't stick very well. I suggest
it would work better to enforce a few requirements on the way in.
Diffstat (limited to 'src/reflect/scala/reflect/internal/util/StringOps.scala')
-rw-r--r-- | src/reflect/scala/reflect/internal/util/StringOps.scala | 32 |
1 files changed, 24 insertions, 8 deletions
diff --git a/src/reflect/scala/reflect/internal/util/StringOps.scala b/src/reflect/scala/reflect/internal/util/StringOps.scala index 4d98a344d8..14f349f502 100644 --- a/src/reflect/scala/reflect/internal/util/StringOps.scala +++ b/src/reflect/scala/reflect/internal/util/StringOps.scala @@ -7,7 +7,11 @@ \* */ package scala -package reflect.internal.util +package reflect +package internal +package util + +import scala.compat.Platform.EOL /** This object provides utility methods to extract elements * from Strings. @@ -18,14 +22,26 @@ package reflect.internal.util trait StringOps { def oempty(xs: String*) = xs filterNot (x => x == null || x == "") def ojoin(xs: String*): String = oempty(xs: _*) mkString " " - def longestCommonPrefix(xs: List[String]): String = { - if (xs.isEmpty || xs.contains("")) "" - else xs.head.head match { - case ch => - if (xs.tail forall (_.head == ch)) "" + ch + longestCommonPrefix(xs map (_.tail)) - else "" - } + def longestCommonPrefix(xs: List[String]): String = xs match { + case Nil => "" + case xs if xs contains "" => "" + case x :: xs => + val ch = x charAt 0 + if (xs exists (_.head != ch)) "" + else "" + ch + longestCommonPrefix(xs map (_ substring 1)) + } + /** Like String#trim, but trailing whitespace only. + */ + def trimTrailingSpace(s: String): String = { + var end = s.length + while (end > 0 && s.charAt(end - 1).isWhitespace) + end -= 1 + + if (end == s.length) s + else s.substring(0, end) } + /** Breaks the string into lines and strips each line before reassembling. */ + def trimAllTrailingSpace(s: String): String = s.lines map trimTrailingSpace mkString EOL def decompose(str: String, sep: Char): List[String] = { def ws(start: Int): List[String] = |