6
votes

Splitting Scalac Plugin dans plusieurs fichiers

Je voudrais diviser mon scalac Plugin dans plusieurs fichiers. Cela semble facile, mais je n'ai pas réussi à le retirer en raison de problèmes de type dépendant des chemins issus de la Importation globale ._ Ligne.

Voici l'exemple d'échantillon de Lex Spoon: < Pré> xxx

Comment puis-je mettre composant et divbbyzerophase dans leurs propres fichiers sans avoir le importer global ._ Portée?


0 commentaires

3 Réponses :


4
votes

Voici un projet vraiment ancien où j'ai fait la même chose:

https://github.com/jsuereth/osgi-calac-plugin/blob/master/src/main/scala/scala/osgi/compiler/osgiplugin.scala

Si vous n'avez pas besoin de passer des types dépendants du chemin du monde, ne vous inquiétez pas d'essayer de conserver les portions «cette.global» de celle-ci pertinente.


0 commentaires

2
votes

Vous pouvez créer une classe distincte pour votre composant et passer global dans: xxx


0 commentaires

3
votes

Dans la bibliothèque de refactoring Scala, je l'ai résolu en ayant une compiléreuse de trait: xxx pré>

maintenant tous les autres traits qui doivent accéder à global code> juste déclarer CompilerAccess code> comme une dépendance: p> xxx pré>

et il y a une classe qui se mélange à tous ces traits et fournit une instance de global: p>

trait SomeRefactoring extends TreeTraverser with OtherTrait with MoreTraits {
  val global = //wherever you get your global from
}


0 commentaires