Migration from Refactoring

Hello all,

When IntelliJ IDEA was started with Open API for plugins, it was a few set of classes. During two years Open API is changed globally. Every time, then JetBrains makes decision to make changes in Open API, all plugin authors cry. As result, plugin authors forced to remake each of their plugin according changes in Open API.This is not good and everyone who works with IDEA Open API knows it. I think about one good thing in IntelliJ IDEA, which maybe appears in future... i hope :)
The idea of solution - recording refactorings with code to a patch pack and transform it to Migration scheme. It looks like very simple thing, but it very simple indeed.

Very interesting, what thing about this idea plugins authors?

Here is detail description:
http://aefimov.blogspot.com/2005/02/migration-from-refactoring.html

Thanks!

-- Alexey Efimov

6 comments
Comment actions Permalink

The idea of solution - recording refactorings with code to a patch
pack and transform it to Migration scheme. It looks like very simple
thing, but it very simple indeed.

Great idea for IDEA, indeed :).

Some questions :
1. if this would play together with the obfuscation process of IDEA.
2. if the transoformation that takes place in the OpenAPI between 2 EAPs
is a pure "refactoring" and only refactoring transformation, so that the
"recording" makes sense. If so, than it would be very cool, and the only
IDE to support such a thing :).


Ahmed.

0
Comment actions Permalink

This is the feature I miss the most. (And it has been discussed a long time ago...).

Especially if I want to refactor a module that is in multiple projekts (e.g. a framework), refactorings are very, very painful.


I love the idea of shipping a new version of an api together with a generic XML-file that describes the refactorings done...

0
Comment actions Permalink

Hello Ahmed,

1. if this would play together with the obfuscation
process of IDEA.


This is not needed in realy. The API of IDEA is not scrembled source code. But if someone from JB rename some class in Open API, or remove some method (changed signature, for example). His must store log of refactorings to us. And we, using this log can perform such refactorings, for example.

2. if the transoformation that takes place in the
OpenAPI between 2 EAPs
is a pure "refactoring" and only refactoring
transformation, so that the
"recording" makes sense.


Sure the pure refactoring. It is like a recorded macro bungled with Open API zip archive. You load migration scheme into IDEA and idea make migration, using pure refactorings command, i guess.

Thanks!

0
Comment actions Permalink

Hi,

I love the idea of shipping a new version of an api
together with a generic XML-file that describes the
refactorings done...


One bottle nesk - Migration support now only packages and classes... I like to have in this tool a 'scenario' scripted on some language, maybe on XML maybe on some more developer oriented language. Scrip for refactorings invocation with input parameters as 'this method' or 'this class' or something else. For example:


etc

But how to record this script from IDEA actions, i can't imagine for now time :(

Thanks!

0
Comment actions Permalink

I think migration of package, class or method not enough but kind of Structural Replace may be used...

0
Comment actions Permalink

Hi!

Yes, but i still have not successful understand how it work.
I also ask Maxim for Open API orientation of this feature, but, i think, his will no change anything in this part...

Will be very nice to have such thing in Open API, then Migration is just sequences of SSR scripts.

And it still now solve problem with 'recording' refactoring actions...

Thanks!

0

Please sign in to leave a comment.