ABSTRACT
IntelliJ IDEA was one of the first Java IDEs to cross the Refactoring Rubicon [1], by implementing the Extract Method refactoring for Java in early 2001. Since that time, IntelliJ IDEA has evolved greatly to support a wide array of refactorings for Java, cross-language refactoring and other advanced features. This paper gives an overview of the key architectural components of IntelliJ IDEA involved in implementing refactorings. It also describes some of the problems we're facing when implementing refactorings and possible directions for future development.
- Martin Fowler Crossing Refactoring's Rubicon http://martinfowler.com/articles/refactoringRubicon.htmlGoogle Scholar
- Jan Bečička, Petr Zajac, Petr Hřebejk Using Java 6 Compiler as a Refactoring and an Analysis Engine, ECOOP 2007Google Scholar
- NetBeans Project Jackpot http://jackpot.netbeans.org/Google Scholar
- JetBrains Meta Programming System http://www.jetbrains.com/mps/Google Scholar
Index Terms
- Implementing refactorings in IntelliJ IDEA
Recommendations
IntelliJML: a JML plugin for IntelliJ IDEA
FTfJP '21: Proceedings of the 23rd ACM International Workshop on Formal Techniques for Java-like ProgramsJava code can be annotated with formal specifications using the Java Modelling Language (JML). Previous work has provided IDE plugins intended to help write JML, but mostly for the Eclipse IDE. We introduce IntelliJML, a JML plugin for IntelliJ IDEA, ...
Deriving refactorings for aspectJ
OOPSLA '04: Companion to the 19th annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applicationsIn this paper we present aspect-oriented programming laws that are useful for deriving refactorings for AspectJ. The laws help developers to verify if the transformations they define preserve behavior. We illustrate that by deriving several AspectJ ...
Star diagram with automated refactorings for Eclipse
eclipse '05: Proceedings of the 2005 OOPSLA workshop on Eclipse technology eXchangeOne of the powerful features of the Eclipse JDT plug-in is its refactoring feature. Yet, because many refactorings are global and architectural in nature, the textual presentation of refactorings presents challenges for designers. We have designed and ...
Comments