Pharo 4.0 as well. I made a mistake in my example :(, so I'm adding more test cases to check ;).| tree |RBParseTreeRewriter newreplace: '``@object `oldSelector `{:node | node selector asString matchesRegex: ''.*oldSelector.*''}'with: '`{RBMessageNode receiver: ``@object selector: (`oldSelector copyReplaceAll: ''oldSelector'' with: ''newSelector'') asSymbol arguments: #()}';executeTree:(tree := RBParserparseMethod:'DoIt ^ [:proxy |��proxy at: #oldSelector.proxy preoldSelector.��self preoldSelector oldSelectorPost.proxy preoldSelector: proxy.proxy oldSelectorAnotherMethod.proxy do: ''oldSelectorAndSomething''."a comment with #oldSelector ��"]').tree newSource.Thanks, that worked much better!Here you have a much larger example/test:| rewriter tree oldSeletor newSelector |"closure method sourceCode"tree := RBParser parseMethod: 'DoIt ^ [:proxy |��| oldSelector oldSelectorsuffix prefixoldSelector prefixoldSelectorSuffix |oldSelector := 1.oldSelectorsuffix := 1.prefixoldSelector := 1.prefixoldSelectorSuffix := 1.proxy at: #oldSelector.proxy at: #oldSelectorSuffix.proxy at: #prefixoldSelector.proxy at: #prefixoldSelectorSuffix.proxy oldSelector.proxy oldSelectorSuffix.proxy prefixoldSelector.proxy prefixoldSelectorSuffix.proxy do: ''oldSelector''.proxy do: ''oldSelectorSuffix''.proxy do: ''prefixoldSelector''.proxy do: ''prefixoldSelectorSuffix''."a comment with #oldSelector ��""a comment with #oldSelectorSuffix ��""a comment with #prefixoldSelector ��""a comment with #prefixoldSelectorSuffix ��"]'.oldSeletor := #oldSelector.��newSelector := #newSelector.rewriter := RBParseTreeRewriter newreplace: '``@object `oldSelector `{:node | node selector asString matchesRegex: ''.*oldSelector.*''}'with: '`{RBMessageNode receiver: ``@object selector: (`oldSelector copyReplaceAll: ''oldSelector'' with: ''newSelector'') asSymbol arguments: #()}'.rewriter executeTree: tree.tree ��newSourceI think I only miss the literal ones (for example ��proxy at: #oldSelector and the rest) which previously were catched by " RBParseTreeRewriter replaceLiteral: oldSeletor with: newSelector. "
I guess I can apply a similar logic for with the regex. I will see if I can came up with that. If you happen to know how ;););)Yes, I will go to Smalltalks and I will give a talk. So I will ask him if there are remaining questions!BTW, later on today I will send you an screenshot to show you where you helped me :)
--Thanks!!!��