diff options
author | Felix Mulder <felix.mulder@gmail.com> | 2017-01-21 19:56:10 +0100 |
---|---|---|
committer | Felix Mulder <felix.mulder@gmail.com> | 2017-01-31 14:32:40 +0100 |
commit | 3e9451d79b3e6845c4b1c0906401108a609eddf8 (patch) | |
tree | 66a01844ca1043f5dc5b16ea0c8d7da93d70479f /doc-tool/src/dotty/tools/dottydoc/util | |
parent | 384f5a0dba5c2102327015c67781462ba475e43a (diff) | |
download | dotty-3e9451d79b3e6845c4b1c0906401108a609eddf8.tar.gz dotty-3e9451d79b3e6845c4b1c0906401108a609eddf8.tar.bz2 dotty-3e9451d79b3e6845c4b1c0906401108a609eddf8.zip |
Fix insertion of package nodes in doc AST
Diffstat (limited to 'doc-tool/src/dotty/tools/dottydoc/util')
-rw-r--r-- | doc-tool/src/dotty/tools/dottydoc/util/mutate.scala | 2 | ||||
-rw-r--r-- | doc-tool/src/dotty/tools/dottydoc/util/traversing.scala (renamed from doc-tool/src/dotty/tools/dottydoc/util/Traversing.scala) | 18 |
2 files changed, 20 insertions, 0 deletions
diff --git a/doc-tool/src/dotty/tools/dottydoc/util/mutate.scala b/doc-tool/src/dotty/tools/dottydoc/util/mutate.scala index a5a4dfec6..739a1e19d 100644 --- a/doc-tool/src/dotty/tools/dottydoc/util/mutate.scala +++ b/doc-tool/src/dotty/tools/dottydoc/util/mutate.scala @@ -35,6 +35,8 @@ object setters { e.parent = to case e: DefImpl => e.parent = to + case e: TypeAliasImpl => + e.parent = to case _ => () } diff --git a/doc-tool/src/dotty/tools/dottydoc/util/Traversing.scala b/doc-tool/src/dotty/tools/dottydoc/util/traversing.scala index a3b60fa44..9c2e3bf54 100644 --- a/doc-tool/src/dotty/tools/dottydoc/util/Traversing.scala +++ b/doc-tool/src/dotty/tools/dottydoc/util/traversing.scala @@ -22,4 +22,22 @@ object traversing { "../" * (from.path.length - offset) + to.path.mkString("", "/", ".html") } + + + def rootPackages(pkgs: Map[String, Package]): List[String] = { + var currentDepth = Int.MaxValue + var packs = List.empty[String] + + for (key <- pkgs.keys) { + val keyDepth = key.split("\\.").length + packs = + if (keyDepth < currentDepth) { + currentDepth = keyDepth + key :: Nil + } else if (keyDepth == currentDepth) { + key :: packs + } else packs + } + packs + } } |