diff options
author | Kato Kazuyoshi <kato.kazuyoshi@gmail.com> | 2011-10-06 13:53:26 +0000 |
---|---|---|
committer | Kato Kazuyoshi <kato.kazuyoshi@gmail.com> | 2011-10-06 13:53:26 +0000 |
commit | 77aae5843ab901340aa410e7c7dd20034238ef7e (patch) | |
tree | c12e1414ec9de0c500879fa5d2068d9a48ede295 | |
parent | 0afd6d1b192900f2a0cda3a8fa3d8498ded91d5f (diff) | |
download | scala-77aae5843ab901340aa410e7c7dd20034238ef7e.tar.gz scala-77aae5843ab901340aa410e7c7dd20034238ef7e.tar.bz2 scala-77aae5843ab901340aa410e7c7dd20034238ef7e.zip |
Add "Google tokens for Scala" for symbolic name...
Add "Google tokens for Scala" for symbolic names on Scaladoc. Review by
ureche.
We can't use Scala's symbolic names on Google. Instead of waiting
Google, we'll introduce mapping from the names to equivalent searchable
representations. This idea proposed by Grzegorz Kossakowski.
https://groups.google.com/group/scala-internals/browse_thread/thread/413
dbc691542f76f
-rw-r--r-- | src/compiler/scala/tools/nsc/doc/html/page/Template.scala | 15 | ||||
-rw-r--r-- | test/scaladoc/resources/basic.scala | 7 | ||||
-rw-r--r-- | test/scaladoc/scala/html/HtmlFactoryTest.scala | 10 |
3 files changed, 28 insertions, 4 deletions
diff --git a/src/compiler/scala/tools/nsc/doc/html/page/Template.scala b/src/compiler/scala/tools/nsc/doc/html/page/Template.scala index 03fe5b4267..5f4950187e 100644 --- a/src/compiler/scala/tools/nsc/doc/html/page/Template.scala +++ b/src/compiler/scala/tools/nsc/doc/html/page/Template.scala @@ -9,7 +9,7 @@ package html package page import model._ -import scala.xml.{ NodeSeq, Text, XML } +import scala.xml.{ NodeSeq, Text, XML, UnprefixedAttribute } class Template(tpl: DocTemplateEntity) extends HtmlPage { @@ -538,10 +538,21 @@ class Template(tpl: DocTemplateEntity) extends HtmlPage { { val nameHtml = { val value = if (mbr.isConstructor) tpl.name else mbr.name - if (mbr.deprecation.isDefined) + val span = if (mbr.deprecation.isDefined) <span class={"name deprecated"} title={"Deprecated: "+bodyToStr(mbr.deprecation.get)}>{ value }</span> else <span class={"name"}>{ value }</span> + val encoded = scala.reflect.NameTransformer.encode(value) + if (encoded != value) { + span % new UnprefixedAttribute("title", + "gt4s: " + encoded + + span.attribute("title").map( + node => ". " + node + ).getOrElse(""), + scala.xml.Null) + } else { + span + } } if (!nameLink.isEmpty) <a href={nameLink}>{nameHtml}</a> diff --git a/test/scaladoc/resources/basic.scala b/test/scaladoc/resources/basic.scala index 8645efd818..00db6669b4 100644 --- a/test/scaladoc/resources/basic.scala +++ b/test/scaladoc/resources/basic.scala @@ -8,6 +8,13 @@ package com.example.p1 { class Clazz { def foo = packageObjectMethod implicit def intToClass1(n: Int) = new Clazz + + @deprecated("This method is deprecated.") + def depracatedMethod = 0 + + // Google Token for Scala + def :: = 0 + @deprecated("This method is deprecated.") def :::: = 0 } class UpperBound[T <: Int] diff --git a/test/scaladoc/scala/html/HtmlFactoryTest.scala b/test/scaladoc/scala/html/HtmlFactoryTest.scala index 2c81be5d08..f265ddc8cf 100644 --- a/test/scaladoc/scala/html/HtmlFactoryTest.scala +++ b/test/scaladoc/scala/html/HtmlFactoryTest.scala @@ -141,8 +141,8 @@ object Test extends Properties("HtmlFactory") { createTemplate("Trac4372.scala") match { case node: scala.xml.Node => { val html = node.toString - html.contains("<span class=\"name\">+:</span>\n") && - html.contains("<span class=\"name\">-:</span>\n") && + html.contains("<span class=\"name\" title=\"gt4s: $plus$colon\">+:</span>\n") && + html.contains("<span class=\"name\" title=\"gt4s: $minus$colon\">-:</span>\n") && html.contains("""<span class="params">(<span name="n">n: <span name="scala.Int" class="extype">Int</span></span>)</span><span class="result">: <span name="scala.Int" class="extype">Int</span></span>""") } case _ => false @@ -381,6 +381,12 @@ object Test extends Properties("HtmlFactory") { case Some(node: scala.xml.Node) => { property("implicit convertion") = node.toString contains "<span class=\"modifier\">implicit </span>" + + property("gt4s") = + node.toString contains "title=\"gt4s: $colon$colon\"" + + property("gt4s of a deprecated method") = + node.toString contains "title=\"gt4s: $colon$colon$colon$colon. Deprecated: " true } case _ => false |