2009-12-11 3 views
1

Ceci concerne la variante Dolphin de Smalltalk.Trouver des références à la chaîne/symbole/méthode

Je suis en train de creuser dans l'image pour essayer de comprendre cela, mais je n'ai pas encore trouvé l'invocation de méthode correcte et j'espère que quelqu'un pourrait être capable d'aider à raccourcir ce processus. Ce que j'essaie de faire est de trouver toutes les méthodes (soit dans l'ensemble du système ou, de préférence, juste dans une seule classe) qui se réfèrent à une chaîne, un symbole, ou méthode. J'ai trouvé la famille de méthodes #references dans SmalltalkSystem mais je n'ai pas eu de chance de trouver comment les obtenir à redonner quelque chose ressemblant à ce que je veux.

Répondre

1

La façon programmatique, on y va

SmalltalkSystem current browseContainingText: 'Dolphin'. 
+0

Merci, à la fois à Lukas et Adrian. Ces suggestions ont été excellentes, mais le code que je devais analyser était dans un BlockClosure, et la solution finale était quelque chose comme méthode unBloc sendsMessage: unSymbole et méthode unBloc refersToLiteral: aString Merci beaucoup! –

1

Je n'ai pas Dolphin à portée de main, mais le code suivant devrait fonctionner dans tous Smalltalk avec le moteur de refactoring (ce qui comprend Dolphin):

result := BrowserEnvironment new matches: 'Dolphin'. 

Ensuite, vous pouvez itérer sur les résultats comme celui-ci:

result classesAndSelectorsDo: [ :class :selector | ... ]. 
Questions connexes