summaryrefslogtreecommitdiff
path: root/src/compiler/scala/tools/ant
diff options
context:
space:
mode:
authorVlad Ureche <vlad.ureche@gmail.com>2012-07-12 14:24:54 +0200
committerVlad Ureche <vlad.ureche@gmail.com>2012-07-16 23:41:44 +0200
commita119ad1ae58723bd2e757ed331a536ff4ae49bdf (patch)
tree45692e87e13f0870f8b6f928b33ff6668cd46389 /src/compiler/scala/tools/ant
parent891769fae541513d68ce7a8e84b7213472c333c9 (diff)
downloadscala-a119ad1ae58723bd2e757ed331a536ff4ae49bdf.tar.gz
scala-a119ad1ae58723bd2e757ed331a536ff4ae49bdf.tar.bz2
scala-a119ad1ae58723bd2e757ed331a536ff4ae49bdf.zip
SI-4360 Adds prefixes to scaladoc
This was a long-standing issue in scaladoc: It was unable to disambiguate between entries with the same name. One example is: immutable.Seq: trait Seq[+A] extends Iterable[A] with Seq[A] ... What's that? Seq extends Seq? No, immutable.Seq extends collection.Seq, but scaladoc was unable to show that. Now it does, depending on the template you're in. Prefixes are relative and can go back: -scala.collection.Seq has subclasses *immutable.Seq* and *mutable.Seq* -scala.immutable.Seq extends *collection.Seq* Unfortunately the price we pay for this is high, a 20% slowdown in scaladoc. This is why there is a new flag called -no-prefixes that disables the prefixes in front of types. Btw, it also fixes the notorious "booleanValue: This member is added by an implicit conversion from Boolean to Boolean ...". That's now java.lang.Boolean, so it becomes clear. Conflicts: src/compiler/scala/tools/nsc/doc/model/diagram/DiagramFactory.scala
Diffstat (limited to 'src/compiler/scala/tools/ant')
-rw-r--r--src/compiler/scala/tools/ant/Scaladoc.scala9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/compiler/scala/tools/ant/Scaladoc.scala b/src/compiler/scala/tools/ant/Scaladoc.scala
index 2cada92c1e..9aa2f6f921 100644
--- a/src/compiler/scala/tools/ant/Scaladoc.scala
+++ b/src/compiler/scala/tools/ant/Scaladoc.scala
@@ -153,6 +153,8 @@ class Scaladoc extends ScalaMatchingTask {
/** Instruct the scaladoc to produce textual ouput from html pages, for easy diff-ing */
private var docRawOutput: Boolean = false
+ /** Instruct the scaladoc not to generate prefixes */
+ private var docNoPrefixes: Boolean = false
/*============================================================================*\
** Properties setters **
@@ -427,6 +429,12 @@ class Scaladoc extends ScalaMatchingTask {
def setRawOutput(input: String) =
docRawOutput = Flag.getBooleanValue(input, "rawOutput")
+ /** Set the `noPrefixes` bit to prevent Scaladoc from generating prefixes in
+ * front of types -- may lead to confusion, but significantly speeds up the generation.
+ * @param input One of the flags `yes/no` or `on/off`. Default if no/off. */
+ def setNoPrefixes(input: String) =
+ docNoPrefixes = Flag.getBooleanValue(input, "noPrefixes")
+
/*============================================================================*\
** Properties getters **
\*============================================================================*/
@@ -625,6 +633,7 @@ class Scaladoc extends ScalaMatchingTask {
docSettings.docDiagrams.value = docDiagrams
docSettings.docDiagramsDebug.value = docDiagramsDebug
docSettings.docRawOutput.value = docRawOutput
+ docSettings.docNoPrefixes.value = docNoPrefixes
if(!docDiagramsDotPath.isEmpty) docSettings.docDiagramsDotPath.value = docDiagramsDotPath.get
if (!docgenerator.isEmpty) docSettings.docgenerator.value = docgenerator.get