diff options
Diffstat (limited to 'src/compiler/scala/tools/nsc/ast/DocComments.scala')
-rwxr-xr-x | src/compiler/scala/tools/nsc/ast/DocComments.scala | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/src/compiler/scala/tools/nsc/ast/DocComments.scala b/src/compiler/scala/tools/nsc/ast/DocComments.scala index 1a807cc2c3..9df0069ada 100755 --- a/src/compiler/scala/tools/nsc/ast/DocComments.scala +++ b/src/compiler/scala/tools/nsc/ast/DocComments.scala @@ -304,11 +304,7 @@ trait DocComments { self: SymbolTable => val end = startTag(raw, (defines ::: usecases).sort(_._1 < _._1)) (if (end == raw.length - 2) raw else raw.substring(0, end) + "*/", - defines map { - case (start, end) => raw.substring(start, end) - } map { - _.replaceAll("(?m)^\\s+\\*", "") - }, + defines map { case (start, end) => raw.substring(start, end) }, usecases map { case (start, end) => decomposeUseCase(start, end) }) } @@ -332,13 +328,18 @@ trait DocComments { self: SymbolTable => pos withStart start1 withPoint start1 withEnd end1 } - def defineVariables(sym: Symbol) { - for (str <- defines) { - val start = skipWhitespace(str, "@define".length) - var idx = skipVariable(str, start) - val vble = variableName(str.substring(start, idx)) + def defineVariables(sym: Symbol) = { + val Trim = "(?s)^[\\s&&[^\n\r]]*(.*?)\\s*$".r - defs(sym) += vble -> (str drop idx).trim.replaceAll("""\s+\*+$""", "") + defs(sym) ++= defines.map { + str => { + val start = skipWhitespace(str, "@define".length) + val (key, value) = str.splitAt(skipVariable(str, start)) + key.drop(start) -> value + } + } map { + case (key, Trim(value)) => + variableName(key) -> value.replaceAll("\\s+\\*+$", "") } } } |