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
}