From: Curt Hibbs Date: 2003-08-14T03:39:40+09:00 Subject: Re: AW: [ann] AEditor 0.10, folding added Lothar Scholz wrote: > > Hello Simon, > > Tuesday, August 12, 2003, 10:44:49 PM, you wrote: > > SS> also IntelliJ-Idea has many nice features which I hope > AEditor will get. > SS> http://www.intellij.com/idea/ > SS> examples of its features [ripped from intelliJ's feature list]: > SS> * rename method, The renaming functionality allows you to rename any > SS> package, class, method or variable and automatically finds > and corrects > SS> all references to it. > SS> * Moving classes and packages with reference correction. > SS> * extract method, Select a block of code and invoke Extract Method to > SS> turn it into a method. It will automatically analyze the code to > SS> detect which variables of the original method must be passed to the > SS> extracted method as parameters. > SS> * etc.. 30 refactoring operations .. > > SS> If we had an IDE for Ruby with such features... wow. > SS> I will do my best in order to create such refactoring tools for ruby. > > Have you ever spend more then a few minutes to think about the > problems with refactoring in script languages and especially with > ruby ? > > I guess you didn't. > > The fexibility of languages like ruby makes it impossible to ever > write something like intellij. And it is not a parser problem. I can > write a full ruby parser in a weekend, but this would give me no clue > about the behaviour. The problem is harder in a dynamically typed language like Ruby, but not impossible. You can't take it quite as far as you can in a strongly typed language like Java, but you *can* implement a surprising amount of functionality. You only need to look as far as the existing Smalltalk refactoring tools to see just what can be done. Curt