summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKato Kazuyoshi <kato.kazuyoshi@gmail.com>2011-10-06 13:53:26 +0000
committerKato Kazuyoshi <kato.kazuyoshi@gmail.com>2011-10-06 13:53:26 +0000
commit77aae5843ab901340aa410e7c7dd20034238ef7e (patch)
treec12e1414ec9de0c500879fa5d2068d9a48ede295
parent0afd6d1b192900f2a0cda3a8fa3d8498ded91d5f (diff)
downloadscala-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.scala15
-rw-r--r--test/scaladoc/resources/basic.scala7
-rw-r--r--test/scaladoc/scala/html/HtmlFactoryTest.scala10
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