I Hate scaladoc

428 views
Skip to first unread message

Rodrigo Cano

unread,
Dec 21, 2012, 2:39:05 PM12/21/12
to scala-user
I can never generate a scaladoc without it exploding somehow (this comes from many times that I've tried to use it during my life with scala, since 2.8 all the way to 2.10-RC5). 
Normally it takes me a while changing code until it finally parses it instead of crushing (with the most basic syntax.. I really wonder how did the guy/s of scalatest to write such beautiful documentation), but this time I am getting this error which I can't overcome:

[error] (luthier-core/compile:doc) 'method registeredFlows_=' isn't a class, trait or object thus cannot be built as a documentable template.

The field it is complaining about is defined as:

  @volatile var registeredFlows = Set.empty[GFlow]

and it is NOT documented in any way (although, I would like to comment it, since its public).

If I, some how remove that field, another var causes it to explode. Are vars that broken for scaladoc?. I'm using scala2.10.RC5 for this project. Anyway to make it work?.

Thanks, and sorry for the tone of my frustration.

Daniel Sobral

unread,
Dec 21, 2012, 3:49:39 PM12/21/12
to Rodrigo Cano, scala-user
Can you minimize the problem?
--
Daniel C. Sobral

I travel to the future all the time.

Rodrigo Cano

unread,
Dec 21, 2012, 3:56:24 PM12/21/12
to Daniel Sobral, scala-user
No, I really tried, but have no idea of what triggers it... I'm pushing here to opensource the project we are working in asap, but it might take some time, sorry. I thought that somebody would already hit this, and not that I'm just this unlucky.

Dave

unread,
Dec 22, 2012, 5:48:42 AM12/22/12
to scala...@googlegroups.com
Which build tool (and version) are you using? It might be a build tool problem.
 
 

Op vrijdag 21 december 2012 20:39:05 UTC+1 schreef Rodrigo Cano het volgende:

Rodrigo Cano

unread,
Dec 23, 2012, 10:09:14 AM12/23/12
to Dave, scala...@googlegroups.com
sbt 12.1

Dave

unread,
Dec 23, 2012, 10:40:06 AM12/23/12
to scala...@googlegroups.com, Dave
I think if I look in their trunk scalatest is using ant/maven.
You could use ant for generating scaladoc, maybe it works better in particular with annotations (I had some unchecked warnings (although harmless, probably) with DI annotations in sbt, but not in maven).
Here is a basic build.xml that you could customize (e.g. use it only for scaladoc)
http://www.steinbit.org/words/programming/setting-up-ant-for-your-scala-project

For scala 2.10, you need to add scala-reflect.jar , because most of the reflection is now in a separate jar
<property name="scala-reflect.jar" location="${scala.dir}/lib/scala-reflect.jar"/>

and use it in this part

   <path id="scala.classpath">
      <pathelement location="${scala-compiler.jar}"/>
      <pathelement location="${scala-library.jar}"/>
      <pathelement location="${scala-reflect.jar}"/>
    </path>   



Op zondag 23 december 2012 16:09:14 UTC+1 schreef Rodrigo Cano het volgende:

Rodrigo Cano

unread,
Dec 23, 2012, 12:52:16 PM12/23/12
to Dave, scala...@googlegroups.com
Thanks, I'll try that out.

Vlad Ureche

unread,
Dec 23, 2012, 7:47:59 PM12/23/12
to Rodrigo Cano, scala-user, Eugene Vigdorchik

On Fri, Dec 21, 2012 at 8:39 PM, Rodrigo Cano <ioni...@gmail.com> wrote:

[error] (luthier-core/compile:doc) 'method registeredFlows_=' isn't a class, trait or object thus cannot be built as a documentable template.

The field it is complaining about is defined as:

  @volatile var registeredFlows = Set.empty[GFlow]

and it is NOT documented in any way (although, I would like to comment it, since its public).

If I, some how remove that field, another var causes it to explode. Are vars that broken for scaladoc?. I'm using scala2.10.RC5 for this project. Anyway to make it work?.

Hi Rodrigo,

Can you please post the stacktrace you got for the error? In the absence of the source code which triggers it, a stack trace would be the next most useful thing.

Btw, unfortunately now it's too late in the Scala 2.10.0 release process to have a patch merged, but I can try to come up with a workaround so you get things running for 2.10.0 and later get a fix in for 2.10.1. I just need to reproduce the error.

A couple more questions:

 - if you replace the variable definition by:
@volatile private[this] var _registeredFlows = Set.empty[GFlow]
def registeredFlows = _registeredFlows
def registeredFlows_= (v: Set[GFlow]) = _registeredFlows = v
do you still see the error? (this is the expasion Scala does for the variable, exposing the getter and setter)
 - are you using the "-expand-all-types" scaladoc flag?
 - do you have any doc comment for the variable? If so, does it contain "@template" or "@documentable"?
 - is this variable defined in a package object?

Cheers,
Vlad

Rodrigo Cano

unread,
Dec 24, 2012, 1:41:12 PM12/24/12
to Vlad Ureche, scala-user, Eugene Vigdorchik
Stacktrace:

java.lang.RuntimeException: 'method registeredFlows_=' isn't a class, trait or object thus cannot be built as a documentable template.
        at scala.sys.package$.error(package.scala:27)
        at scala.tools.nsc.doc.model.ModelFactory$modelCreation$.createDocTemplate$1(ModelFactory.scala:706)
        at scala.tools.nsc.doc.model.ModelFactory$modelCreation$.createTemplate(ModelFactory.scala:752)
        at scala.tools.nsc.doc.model.ModelFactory.scala$tools$nsc$doc$model$ModelFactory$$makeMember0$1(ModelFactory.scala:849)
        at scala.tools.nsc.doc.model.ModelFactory.makeMember(ModelFactory.scala:862)
        at scala.tools.nsc.doc.model.ModelFactory$DocTemplateImpl$$anonfun$8.apply(ModelFactory.scala:398)
        at scala.tools.nsc.doc.model.ModelFactory$DocTemplateImpl$$anonfun$8.apply(ModelFactory.scala:398)
        at scala.collection.TraversableLike$$anonfun$flatMap$1.apply(TraversableLike.scala:251)
        at scala.collection.TraversableLike$$anonfun$flatMap$1.apply(TraversableLike.scala:251)
        at scala.collection.immutable.List.foreach(List.scala:309)
        at scala.collection.TraversableLike$class.flatMap(TraversableLike.scala:251)
        at scala.collection.AbstractTraversable.flatMap(Traversable.scala:105)
        at scala.tools.nsc.doc.model.ModelFactory$DocTemplateImpl.<init>(ModelFactory.scala:398)
        at scala.tools.nsc.doc.model.ModelFactory$modelCreation$$anon$6.<init>(ModelFactory.scala:702)
        at scala.tools.nsc.doc.model.ModelFactory$modelCreation$.createDocTemplate$1(ModelFactory.scala:702)
        at scala.tools.nsc.doc.model.ModelFactory$modelCreation$.createTemplate(ModelFactory.scala:752)
        at scala.tools.nsc.doc.model.ModelFactory.scala$tools$nsc$doc$model$ModelFactory$$makeMember0$1(ModelFactory.scala:849)
        at scala.tools.nsc.doc.model.ModelFactory.makeMember(ModelFactory.scala:862)
        at scala.tools.nsc.doc.model.ModelFactory$DocTemplateImpl$$anonfun$8.apply(ModelFactory.scala:398)
        at scala.tools.nsc.doc.model.ModelFactory$DocTemplateImpl$$anonfun$8.apply(ModelFactory.scala:398)
        at scala.collection.TraversableLike$$anonfun$flatMap$1.apply(TraversableLike.scala:251)
        at scala.collection.TraversableLike$$anonfun$flatMap$1.apply(TraversableLike.scala:251)
        at scala.collection.immutable.List.foreach(List.scala:309)
        at scala.collection.TraversableLike$class.flatMap(TraversableLike.scala:251)
        at scala.collection.AbstractTraversable.flatMap(Traversable.scala:105)
        at scala.tools.nsc.doc.model.ModelFactory$DocTemplateImpl.<init>(ModelFactory.scala:398)
        at scala.tools.nsc.doc.model.ModelFactory$PackageImpl.<init>(ModelFactory.scala:520)
        at scala.tools.nsc.doc.model.ModelFactory$modelCreation$$anon$4.<init>(ModelFactory.scala:738)
        at scala.tools.nsc.doc.model.ModelFactory$modelCreation$.createTemplate(ModelFactory.scala:738)
        at scala.tools.nsc.doc.model.ModelFactory.scala$tools$nsc$doc$model$ModelFactory$$makeMember0$1(ModelFactory.scala:849)
        at scala.tools.nsc.doc.model.ModelFactory.makeMember(ModelFactory.scala:862)
        at scala.tools.nsc.doc.model.ModelFactory$DocTemplateImpl$$anonfun$8.apply(ModelFactory.scala:398)
        at scala.tools.nsc.doc.model.ModelFactory$DocTemplateImpl$$anonfun$8.apply(ModelFactory.scala:398)
        at scala.collection.TraversableLike$$anonfun$flatMap$1.apply(TraversableLike.scala:251)
        at scala.collection.TraversableLike$$anonfun$flatMap$1.apply(TraversableLike.scala:251)
        at scala.collection.immutable.List.foreach(List.scala:309)
        at scala.collection.TraversableLike$class.flatMap(TraversableLike.scala:251)
        at scala.collection.AbstractTraversable.flatMap(Traversable.scala:105)
        at scala.tools.nsc.doc.model.ModelFactory$DocTemplateImpl.<init>(ModelFactory.scala:398)
        at scala.tools.nsc.doc.model.ModelFactory$PackageImpl.<init>(ModelFactory.scala:520)
        at scala.tools.nsc.doc.model.ModelFactory$modelCreation$$anon$4.<init>(ModelFactory.scala:738)
        at scala.tools.nsc.doc.model.ModelFactory$modelCreation$.createTemplate(ModelFactory.scala:738)
        at scala.tools.nsc.doc.model.ModelFactory.scala$tools$nsc$doc$model$ModelFactory$$makeMember0$1(ModelFactory.scala:849)
        at scala.tools.nsc.doc.model.ModelFactory.makeMember(ModelFactory.scala:862)
        at scala.tools.nsc.doc.model.ModelFactory$DocTemplateImpl$$anonfun$8.apply(ModelFactory.scala:398)
        at scala.tools.nsc.doc.model.ModelFactory$DocTemplateImpl$$anonfun$8.apply(ModelFactory.scala:398)
        at scala.collection.TraversableLike$$anonfun$flatMap$1.apply(TraversableLike.scala:251)
        at scala.collection.TraversableLike$$anonfun$flatMap$1.apply(TraversableLike.scala:251)
        at scala.collection.immutable.List.foreach(List.scala:309)
        at scala.collection.TraversableLike$class.flatMap(TraversableLike.scala:251)
        at scala.collection.AbstractTraversable.flatMap(Traversable.scala:105)
        at scala.tools.nsc.doc.model.ModelFactory$DocTemplateImpl.<init>(ModelFactory.scala:398)
        at scala.tools.nsc.doc.model.ModelFactory$PackageImpl.<init>(ModelFactory.scala:520)
        at scala.tools.nsc.doc.model.ModelFactory$modelCreation$$anon$4.<init>(ModelFactory.scala:738)
        at scala.tools.nsc.doc.model.ModelFactory$modelCreation$.createTemplate(ModelFactory.scala:738)
        at scala.tools.nsc.doc.model.ModelFactory.scala$tools$nsc$doc$model$ModelFactory$$makeMember0$1(ModelFactory.scala:849)
        at scala.tools.nsc.doc.model.ModelFactory.makeMember(ModelFactory.scala:862)
        at scala.tools.nsc.doc.model.ModelFactory$DocTemplateImpl$$anonfun$8.apply(ModelFactory.scala:398)
        at scala.tools.nsc.doc.model.ModelFactory$DocTemplateImpl$$anonfun$8.apply(ModelFactory.scala:398)
        at scala.collection.TraversableLike$$anonfun$flatMap$1.apply(TraversableLike.scala:251)
        at scala.collection.TraversableLike$$anonfun$flatMap$1.apply(TraversableLike.scala:251)
        at scala.collection.immutable.List.foreach(List.scala:309)
        at scala.collection.TraversableLike$class.flatMap(TraversableLike.scala:251)
        at scala.collection.AbstractTraversable.flatMap(Traversable.scala:105)
        at scala.tools.nsc.doc.model.ModelFactory$DocTemplateImpl.<init>(ModelFactory.scala:398)
        at scala.tools.nsc.doc.model.ModelFactory$PackageImpl.<init>(ModelFactory.scala:520)
        at scala.tools.nsc.doc.model.ModelFactory$modelCreation$$anon$4.<init>(ModelFactory.scala:738)
        at scala.tools.nsc.doc.model.ModelFactory$modelCreation$.createTemplate(ModelFactory.scala:738)
        at scala.tools.nsc.doc.model.ModelFactory.scala$tools$nsc$doc$model$ModelFactory$$makeMember0$1(ModelFactory.scala:849)
        at scala.tools.nsc.doc.model.ModelFactory.makeMember(ModelFactory.scala:862)
        at scala.tools.nsc.doc.model.ModelFactory$DocTemplateImpl$$anonfun$8.apply(ModelFactory.scala:398)
        at scala.tools.nsc.doc.model.ModelFactory$DocTemplateImpl$$anonfun$8.apply(ModelFactory.scala:398)
        at scala.collection.TraversableLike$$anonfun$flatMap$1.apply(TraversableLike.scala:251)
        at scala.collection.TraversableLike$$anonfun$flatMap$1.apply(TraversableLike.scala:251)
        at scala.collection.immutable.List.foreach(List.scala:309)
        at scala.collection.TraversableLike$class.flatMap(TraversableLike.scala:251)
        at scala.collection.AbstractTraversable.flatMap(Traversable.scala:105)
        at scala.tools.nsc.doc.model.ModelFactory$DocTemplateImpl.<init>(ModelFactory.scala:398)
        at scala.tools.nsc.doc.model.ModelFactory$PackageImpl.<init>(ModelFactory.scala:520)
        at scala.tools.nsc.doc.model.ModelFactory$RootPackageImpl.<init>(ModelFactory.scala:532)
        at scala.tools.nsc.doc.model.ModelFactory$modelCreation$$anon$1.<init>(ModelFactory.scala:719)
        at scala.tools.nsc.doc.model.ModelFactory$modelCreation$.createTemplate(ModelFactory.scala:719)
        at scala.tools.nsc.doc.model.ModelFactory$modelCreation$.createRootPackage(ModelFactory.scala:667)
        at scala.tools.nsc.doc.model.ModelFactory$$anon$21.<init>(ModelFactory.scala:64)
        at scala.tools.nsc.doc.model.ModelFactory.makeModel(ModelFactory.scala:61)
        at scala.tools.nsc.doc.DocFactory.makeUniverse(DocFactory.scala:94)
        at scala.tools.nsc.doc.DocFactory.generate$1(DocFactory.scala:125)
        at scala.tools.nsc.doc.DocFactory.document(DocFactory.scala:137)
        at xsbt.Runner.run(ScaladocInterface.scala:30)
        at xsbt.ScaladocInterface.run(ScaladocInterface.scala:11)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:601)
        at sbt.compiler.AnalyzingCompiler.call(AnalyzingCompiler.scala:73)
        at sbt.compiler.AnalyzingCompiler.doc(AnalyzingCompiler.scala:54)
        at sbt.compiler.AnalyzingCompiler.doc(AnalyzingCompiler.scala:50)
        at sbt.Scaladoc$$anonfun$apply$3.apply(Doc.scala:62)
        at sbt.Scaladoc$$anonfun$apply$3.apply(Doc.scala:62)
        at sbt.Doc$class.generate(Doc.scala:36)
        at sbt.Scaladoc.generate(Doc.scala:58)
        at sbt.Scaladoc.apply(Doc.scala:62)
        at sbt.Doc$$anonfun$1$$anonfun$apply$1.apply(Doc.scala:50)
        at sbt.Doc$$anonfun$1$$anonfun$apply$1.apply(Doc.scala:48)
        at sbt.Tracked$$anonfun$outputChanged$1.apply(Tracked.scala:57)
        at sbt.Tracked$$anonfun$outputChanged$1.apply(Tracked.scala:52)
        at sbt.Doc$class.cached(Doc.scala:55)
        at sbt.Scaladoc.cached(Doc.scala:58)
        at sbt.Defaults$$anonfun$docTaskSettings$1.apply(Defaults.scala:546)
        at sbt.Defaults$$anonfun$docTaskSettings$1.apply(Defaults.scala:540)
        at sbt.Scoped$$anonfun$hf5$1.apply(Structure.scala:581)
        at sbt.Scoped$$anonfun$hf5$1.apply(Structure.scala:581)
        at scala.Function1$$anonfun$compose$1.apply(Function1.scala:49)
        at sbt.Scoped$Reduced$$anonfun$combine$1$$anonfun$apply$12.apply(Structure.scala:311)
        at sbt.Scoped$Reduced$$anonfun$combine$1$$anonfun$apply$12.apply(Structure.scala:311)
        at sbt.$tilde$greater$$anonfun$$u2219$1.apply(TypeFunctions.scala:41)
        at sbt.std.Transform$$anon$5.work(System.scala:71)
        at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:232)
        at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:232)
        at sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:18)
        at sbt.Execute.work(Execute.scala:238)
        at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:232)
        at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:232)
        at sbt.ConcurrentRestrictions$$anon$4$$anonfun$1.apply(ConcurrentRestrictions.scala:159)
        at sbt.CompletionService$$anon$2.call(CompletionService.scala:30)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
        at java.util.concurrent.FutureTask.run(FutureTask.java:166)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
        at java.util.concurrent.FutureTask.run(FutureTask.java:166)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
        at java.lang.Thread.run(Thread.java:722)


Replacing the var with the actual expansion fixes the issue (I'll use this workaround for now)

 are you using the "-expand-all-types" scaladoc flag?
Yes I am. Removing this flag makes scaladoc work.
- do you have any doc comment for the variable? If so, does it contain "@template" or "@documentable"?
Not at all. But I actually want to document it. Do I need to use @template or @documentable?
 - is this variable defined in a package object?
No.

Thanks for all the help, now I have many possible paths to take. 

Vlad Ureche

unread,
Dec 24, 2012, 7:51:39 PM12/24/12
to Rodrigo Cano, scala-user, Eugene Vigdorchik
On Mon, Dec 24, 2012 at 8:41 PM, Rodrigo Cano <ioni...@gmail.com> wrote:
Yes I am. Removing this flag makes scaladoc work.

I think this flag should have never made it out the door in the first place, when I added it I needed a way to globally trigger abstract/alias type expansion for debugging. I think it would be best to use "@template" if you want full pages for abstract/alias types:

trait T {
  /** This abstract type will get its own page with the correct members adapted for List[String].
   * Go ahead, click on S. :)
   * @template
   */
  type S <: List[String]
}

On the other hand, thanks for the stacktrace, I'll have a look one of these days. It would be even better if you could provide the code, so I can make sure the patch fixes the bug. And expect a deprecation of the flag in 2.10.1 or 2.11.0.

Seeing you've been playing around with scaladoc flags, do you also generate diagrams? :)

Cheers,
Vlad

Grzegorz Kossakowski

unread,
Dec 26, 2012, 12:30:38 AM12/26/12
to Vlad Ureche, Rodrigo Cano, scala-user, Eugene Vigdorchik
On 24 December 2012 16:51, Vlad Ureche <vlad....@gmail.com> wrote:


On Mon, Dec 24, 2012 at 8:41 PM, Rodrigo Cano <ioni...@gmail.com> wrote:
Yes I am. Removing this flag makes scaladoc work.

I think this flag should have never made it out the door in the first place, when I added it I needed a way to globally trigger abstract/alias type expansion for debugging.

Hi Vlad,

Should we deprecate that flag, then?

--
Grzegorz Kossakowski

Vlad Ureche

unread,
Dec 27, 2012, 5:32:21 PM12/27/12
to Grzegorz Kossakowski, Rodrigo Cano, scala-user, Eugene Vigdorchik
On Wed, Dec 26, 2012 at 7:30 AM, Grzegorz Kossakowski <grzegorz.k...@gmail.com> wrote:

Should we deprecate that flag, then?

Hi Greg,

Yes, let's deprecate it, unless someone can step up with a convincing usecase.
I filed bug https://issues.scala-lang.org/browse/SI-6886 to track this. The crash should be an independent bug, which I'll file as soon as I can get my hands on the code and minimize the problem.

Cheers,
Vlad

Janek Bogucki

unread,
Feb 18, 2016, 3:06:43 PM2/18/16
to scala-user, grzegorz.k...@gmail.com, ioni...@gmail.com, eugene.v...@typesafe.com
Hi Vlad,

Is there an established deprecation lifecyle for flags or is just a case of adding a warning message now and then removing support later?

Janek

Vlad Ureche

unread,
Feb 18, 2016, 3:57:51 PM2/18/16
to Janek Bogucki, scala-user, Grzegorz Kossakowski, Rodrigo Cano, Eugene Vigdorchik

On Thu, Feb 18, 2016 at 9:06 PM, Janek Bogucki <jan...@gmail.com> wrote:

Is there an established deprecation lifecyle for flags or is just a case of adding a warning message now and then removing support later?

Hi Janek,

Yes, there is a deprecation function in class Setting, which triggers a warning when the flag is used. Here's an example:
https://github.com/scala/scala/blob/8f36cf3545de3943e5d371286ac76556a5f0e80a/src/compiler/scala/tools/nsc/settings/ScalaSettings.scala#L356
(see the withDeprecationMessage at the end of the line)

Cheers,
Vlad
Message has been deleted

Janek Bogucki

unread,
Feb 19, 2016, 5:56:07 PM2/19/16
to scala-user, jan...@gmail.com, grzegorz.k...@gmail.com, ioni...@gmail.com, eugene.v...@typesafe.com
Cool. Seems to work fine,

22:51 $ ./build/quick/bin/scaladoc -expand-all-types
Usage: scaladoc <options> <source files>
where possible scaladoc options include:
  -author                                     Include authors.
  -diagrams                                   Create inheritance diagrams for classes, traits and packages.
  -diagrams-dot-path <path>                   The path to the dot executable used to generate the inheritance diagrams. Eg: /usr/bin/dot
  -diagrams-dot-restart <n>                   The number of times to restart a malfunctioning dot process before disabling diagrams (default: 5)
  -diagrams-dot-timeout <n>                   The timeout before the graphviz dot util is forcefully closed, in seconds (default: 10)
  -diagrams-max-classes <n>                   The maximum number of superclasses or subclasses to show in a diagram
  -diagrams-max-implicits <n>                 The maximum number of implicitly converted classes to show in a diagram
  -doc-external-doc:<external-doc>            comma-separated list of classpath_entry_path#doc_URL pairs describing external dependencies.
  -doc-footer <footer>                        A footer on every Scaladoc page, by default the EPFL/Typesafe copyright notice. Can be overridden with a custom footer.
  -doc-format:<format>                        Selects in which format documentation is rendered (html) default:html
  -doc-generator <class-name>                 The fully qualified name of a doclet class, which will be used to generate the documentation
  -doc-no-compile <path>                      A directory containing sources which should be parsed, no more (e.g. AnyRef.scala)
  -doc-root-content <path>                    The file from which the root package documentation should be imported.
  -doc-source-url <url>                       A URL pattern used to link to the source file; the following variables are available: €{TPL_NAME}, €{TPL_OWNER} and respectively €{FILE_PATH}. For example, for `scala.collection.Seq`, the variables will be expanded to `Seq`, `scala.collection` and respectively `scala/collection/Seq` (without the backquotes). To obtain a relative path for €{FILE_PATH} instead of an absolute one, use the -sourcepath setting.
  -doc-title <title>                          The overall name of the Scaladoc site
  -doc-version <version>                      An optional version number, to be appended to the title
  -groups                                     Group similar functions together (based on the @group annotation)
  -implicits                                  Document members inherited by implicit conversions.
  -implicits-hide:<implicit(s)>               Hide the members inherited by the given comma separated, fully qualified implicit conversions. Add dot (.) to include default conversions.
  -implicits-show-all                         Show members inherited by implicit conversions that are impossible in the default scope. (for example conversions that require Numeric[String] to be in scope)
  -implicits-sound-shadowing                  Use a sound implicit shadowing calculation. Note: this interacts badly with usecases, so only use it if you haven't defined usecase for implicitly inherited members.
  -no-link-warnings                           Avoid warnings for ambiguous and incorrect links.
  -no-prefixes                                Prevents generating prefixes in types, possibly creating ambiguous references, but significantly speeding up scaladoc.
  -raw-output                                 For each html file, create another .html.raw file containing only the text. (can be used for quickly diffing two scaladoc outputs)
  -skip-packages <<package1>:...:<packageN>>  A colon-delimited list of fully qualified package names that will be skipped from scaladoc.

Additional debug settings:
  -diagrams-debug                             Show debugging information for the diagram creation process.
  -implicits-debug                            Show debugging information for members inherited by implicit conversions.

Deprecated settings:
  -expand-all-types                           Expand all type aliases and abstract types into full template pages. (locally this can be done with the @template annotation)

Will post PR to match.

Janek
Reply all
Reply to author
Forward
0 new messages