summaryrefslogtreecommitdiff
path: root/src/scaladoc/scala/tools/nsc/doc/html/HtmlPage.scala
diff options
context:
space:
mode:
authorDick Wall <dick@bldc.org>2014-11-25 07:07:02 -0800
committerDick Wall <dick@bldc.org>2014-11-26 12:07:42 -0800
commit89c000f70946890a1fc8c378804e1647d271c479 (patch)
treeb02cf4c27b4f6821f072712f2e542bfa7c6d0a7c /src/scaladoc/scala/tools/nsc/doc/html/HtmlPage.scala
parentb1b5b90347869a79af7845316548ad40e5fbb911 (diff)
downloadscala-89c000f70946890a1fc8c378804e1647d271c479.tar.gz
scala-89c000f70946890a1fc8c378804e1647d271c479.tar.bz2
scala-89c000f70946890a1fc8c378804e1647d271c479.zip
SI-9006 Scaladoc: explicit companion and package links
The existing navigation mechanisms have proved hard to discover for newcomers to Scaladoc. This commit adds textual links in the navigation bar to the docs of the companion (if defined) and to those of the enclosing package.
Diffstat (limited to 'src/scaladoc/scala/tools/nsc/doc/html/HtmlPage.scala')
-rw-r--r--src/scaladoc/scala/tools/nsc/doc/html/HtmlPage.scala20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/scaladoc/scala/tools/nsc/doc/html/HtmlPage.scala b/src/scaladoc/scala/tools/nsc/doc/html/HtmlPage.scala
index 295bae5bef..3738e79ffe 100644
--- a/src/scaladoc/scala/tools/nsc/doc/html/HtmlPage.scala
+++ b/src/scaladoc/scala/tools/nsc/doc/html/HtmlPage.scala
@@ -228,6 +228,26 @@ abstract class HtmlPage extends Page { thisPage =>
</a>
</span>
+ def companionAndPackage(tpl: DocTemplateEntity): Elem =
+ <span class="morelinks">{
+ tpl.companion match {
+ case Some(companionTpl) =>
+ val objClassTrait =
+ if (companionTpl.isObject) s"object ${tpl.name}"
+ else if (companionTpl.isTrait) s"trait ${companionTpl.name}"
+ else s"class ${companionTpl.name}"
+ <div>
+ Related Docs:
+ <a href={relativeLinkTo(tpl.companion.get)} title="See companion">{objClassTrait}</a>
+ | {templateToHtml(tpl.inTemplate, s"package ${tpl.inTemplate.name}")}
+ </div>
+ case None =>
+ <div>Related Doc:
+ {templateToHtml(tpl.inTemplate, s"package ${tpl.inTemplate.name}")}
+ </div>
+ }
+ }</span>
+
def memberToUrl(template: Entity, isSelf: Boolean = true): String = {
val (signature: Option[String], containingTemplate: TemplateEntity) = template match {
case dte: DocTemplateEntity if (!isSelf) => (Some(dte.signature), dte.inTemplate)