From: Werner S. (murphee) <wer...@gm...> - 2006-01-26 18:08:32
|
Christopher Williams wrote: > > >> Mirko Stocker wrote: >> >>> Hi! >>> >>> First, I wanted to thank you for the RDT, they are really great :-) >>> Second, my question: I'm a student at the University of Applied >>> Science in Rapperswil, Switzerland. The next semester, we have to >>> do a software-engineering project (about ~200 working hours), and I >>> thought I could (try to) bring refactoring support to the RDT. But >>> I wanted to talk to you guys first, are you already working at >>> this? Do you think it's even doable? What do you think about it? >>> A suggestion: getting any non-trivial refactoring up and running in a semester project is not very likely, but how about building some infrastructure: Build an abstraction using the RDT project model that can be used to facilitate writing refactorings. Some elements of this would be - make it easy to querying the RDT model for information (eg. "give me all method definitions", "give me all places where a singleton class is created",...) - an easy way to apply bulk modifications to many classes analysis is one thing, but it should be easy to rename files, types, elements, etc. even if these files aren't opened. - a higher level DOM (Domain Object Model) that makes it easier to use RDT (checkout the DASH project and it's ideas at http://www.eclipse.org/proposals/dash/ ) - Here's an overview of how Rename Refactoring in Smalltalk works: http://jroller.com/page/murphee?entry=so_that_s_how_dynamic One thing that is needed to do something like this for Ruby in Eclipse is some way to + add wrappers to methods + injecting an Agent into the running process that can take information from the wrappers and transport it back to Eclipse + some Eclipse-side receiver that can map from the events from the Ruby-side agent to source locations, etc. BTW: reading some of the recent Eclipse planning meeting notes, it seems like the JDT Refactoring tools have received "scripting support"; I guess this is a way to construct refactorings in a higher level way or to string several existing refactorings together. I haven't looked at what this really does, but maybe that's something to look into. murphee -- Blog @ http://jroller.com/page/murphee |