Ссылка на исходники из scaladoc?

Мне нужно сделать ссылку на исходники на github из моего scaladoc. Я создаю эти документы с помощью задачи doc sbt.

Есть две проблемы - во-первых, я не люблю создавать несколько вложенных пустых каталогов для своих .scala файлов, поэтому обычно упаковываю их все в один - типа src/main/scala/org.rogach.scallop вместо src/main/scala/org/rogach/scallop. Есть ли способ заставить ссылки на документы работать без разделения этого каталога?

Во-вторых, когда я помещаю эту строку в свой build.sbt:

scalacOptions in (Compile, doc) ++=
  Opts.doc.sourceUrl("https://raw.github.com/Rogach/scallop/master/src/main/scala/")

документы содержат ссылки на источники, но все эти ссылки указывают только на корневой URL-адрес источника, а не на сами файлы. Что я делаю не так?


person Rogach    schedule 02.05.2012    source источник


Ответы (1)


Из вывода scaladoc help:

-doc-source-url <url>        A URL pattern used to build links to template
                             sources; use variables, for example:
                               €{TPL_NAME} ('Seq'),
                               €{TPL_OWNER} ('scala.collection'),
                               €{FILE_PATH} ('scala/collection/Seq')

(Да, это символ евро.)

Что-то вроде следующего должно работать как аргумент для sourceUrl, если все ваши источники определены в пакете:

https://raw.github.com/Rogach/scallop/master/src/main/scala/€{TPL_OWNER}.€{TPL_NAME}.scala
person Mark Harrah    schedule 02.05.2012
comment
Это почти сработало - для всех классов, имена которых совпадают с именами файлов, в которых они определены. Но так как я помещаю несколько классов в один и тот же файл, это ломается :( - person Rogach; 03.05.2012
comment
Я решил использовать FILE_PATH и заменить префикс каталога проекта на моей машине выражением sed. Спасибо за помощь! - person Rogach; 04.05.2012
comment
Да, я не предлагал этого, потому что трудно заставить работать правильно. См. также issues.scala-lang.org/browse/SI-5763. - person Mark Harrah; 04.05.2012