Je voudrais diviser mon Voici l'exemple d'échantillon de Lex Spoon: P> < Pré> xxx pré> Comment puis-je mettre scalac code> 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 ._ code> Ligne.
composant code> et
divbbyzerophase code> dans leurs propres fichiers sans avoir le
importer global ._ code> Portée? P> P>
3 Réponses :
Voici un projet vraiment ancien où j'ai fait la même chose: p>
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. P>
Vous pouvez créer une classe distincte pour votre composant et passer global dans:
Dans la bibliothèque de refactoring Scala, je l'ai résolu en ayant une compiléreuse de trait: maintenant tous les autres traits qui doivent accéder à et il y a une classe qui se mélange à tous ces traits et fournit une instance de global: p> global code> juste déclarer
CompilerAccess code> comme une dépendance: p>
trait SomeRefactoring extends TreeTraverser with OtherTrait with MoreTraits {
val global = //wherever you get your global from
}