2015-05-28 12 views
6

ho un tratto di livello superiore che contiene un certo numero di classi e tratti come:scaladoc non riesce a generare i collegamenti per le classi interne di metodo e di classe firme

trait Trees { self: Types => 
    trait Tree 
    trait IdentifiedTree extends Tree 
    trait Empty extends Tree 

    /** The factory for [[TypeUse]] instances */ 
    trait TypeUse extends Tree 
    /** AST tree to represent erroneous trees */ 
    object BadTree extends IdentifiedTree 
    /** AST tree for empty statements and trees */ 
    val Empty: Empty = new Empty {} 
} 

trait Types 

Quando ho generare la documentazione per esso, utilizzando scaladoc I può collegarsi alle classi interne, utilizzando [[CLASS_NAME]], ma lo scaladoc non riesce a creare collegamenti per gli alberi sia nelle firme che nelle estensioni.

Io uso SBT per generare lo scaladoc, e io uso i seguenti flag:

scalacOptions in (Compile, doc) ++= Seq("-groups", "-implicits", 
    "-diagrams", "-no-prefixes", "-author", "-explaintypes", 
    "-language:implicitConversions,higherKinds") 

Per darvi un'idea migliore, l'API per la definizione di cui sopra è la seguente (si prega di notare i collegamenti mancanti):

enter image description here

Potete dirmi che cosa sto facendo male, per favore?

+0

Non sono sicuro se questo aiuta, ma la mia configurazione SBT è un multi-progetto di una –

+0

ho appena provato con una configurazione SBT singolo progetto, e la stessa cosa è ancora lì. –

risposta

3

Penso che il problema con i tratti nidificati sia che i tratti interni non esistono nemmeno al di fuori di un'istanza del tratto di primo livello. Questo post potrebbe essere di aiuto.

Cambiare il livello superiore Gli alberi per essere un oggetto hanno risolto il problema per me. Tuttavia, non sono sicuro se ciò abbia senso per il tuo caso d'uso.

object Trees { 
    trait Tree 
    trait IdentifiedTree extends Tree 
    trait Empty extends Tree 
    ... 
} 
+0

Sfortunatamente questa non è una grande opzione, ho bisogno di tipi dipendenti dal percorso (da qui schema a torta nei tag). Ma se si guarda l'API del compilatore Scala hanno gli stessi tipi di percorso dipendenti da me, e ancora i collegamenti attivi: https://www.dropbox.com/s/svpseqa37nn1px3/Screenshot_2015-05-31-05-47-51 ~ 2.jpg? Dl = 0 –

+0

Capisco cosa intendi. Mi stavo chiedendo se hai davvero bisogno dei tipi nidificati? Puoi mantenere le Tratti degli Alberi così com'è (quindi sostenere il modello di torta che ti serve) e tirare fuori le altre caratteristiche (Albero, IdentifiedTree, ecc.). – marios

+0

Ho desiderato che fosse possibile, ma la natura del framework con cui ho a che fare rende difficile questo refactoring. Ad ogni modo, i tipi Scala sono tutti di tipo interno e ancora cliccabili, quindi dovrebbe essere possibile farlo, ma non so come –