From 89c000f70946890a1fc8c378804e1647d271c479 Mon Sep 17 00:00:00 2001 From: Dick Wall Date: Tue, 25 Nov 2014 07:07:02 -0800 Subject: 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. --- src/scaladoc/scala/tools/nsc/doc/html/HtmlPage.scala | 20 ++++++++++++++++++++ .../scala/tools/nsc/doc/html/page/Template.scala | 4 +++- .../tools/nsc/doc/html/resource/lib/template.css | 12 ++++++++++++ 3 files changed, 35 insertions(+), 1 deletion(-) (limited to 'src') 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 => + def companionAndPackage(tpl: DocTemplateEntity): Elem = + { + 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}" +
+ Related Docs: + {objClassTrait} + | {templateToHtml(tpl.inTemplate, s"package ${tpl.inTemplate.name}")} +
+ case None => +
Related Doc: + {templateToHtml(tpl.inTemplate, s"package ${tpl.inTemplate.name}")} +
+ } + }
+ 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) diff --git a/src/scaladoc/scala/tools/nsc/doc/html/page/Template.scala b/src/scaladoc/scala/tools/nsc/doc/html/page/Template.scala index f3df2b0bb4..eda52c5fbf 100644 --- a/src/scaladoc/scala/tools/nsc/doc/html/page/Template.scala +++ b/src/scaladoc/scala/tools/nsc/doc/html/page/Template.scala @@ -110,7 +110,9 @@ class Template(universe: doc.Universe, generator: DiagramGenerator, tpl: DocTemp }} { owner } -

{ displayName }

{ permalink(tpl) } +

{ displayName }

{ + if (tpl.isPackage) NodeSeq.Empty else

{companionAndPackage(tpl)}

+ }{ permalink(tpl) } { signature(tpl, isSelf = true) } diff --git a/src/scaladoc/scala/tools/nsc/doc/html/resource/lib/template.css b/src/scaladoc/scala/tools/nsc/doc/html/resource/lib/template.css index 35f66cd5df..e129e6cf6a 100644 --- a/src/scaladoc/scala/tools/nsc/doc/html/resource/lib/template.css +++ b/src/scaladoc/scala/tools/nsc/doc/html/resource/lib/template.css @@ -397,6 +397,18 @@ div.members > ol > li:last-child { margin-bottom: 5px; } +#definition .morelinks { + text-align: right; + position: absolute; + top: 40px; + right: 10px; + width: 450px; +} + +#definition .morelinks a { + color: #EBEBEB; +} + #template .members li .permalink { position: absolute; top: 5px; -- cgit v1.2.3