Converting an eclipse plugin?

Anyone ever attempted to convert an Eclipse plugin? I'm thinking of
converting the tapestry plugin (spindle) but wanted to have an idea of how
hard it would be first.

Regards,

Glen


5 comments
Comment actions Permalink

Let's code Eclipse Emulator plugin for IDEA! :)
Heh ;)

Can you describe a litle more, that is this plugin can do?

Thanks!


0
Comment actions Permalink

It is strongly dependent how much code is relied upon Eclipse API. If it is written in IDE platform-independent way :) having Eclipse API localized and abstracted then the porting is simple since there is no need to emulate the Eclipse itself: yet another facade hiding IDEA API. If this is not the case then some refactoring is needed to bring it to above mentioned state. Still, this should be easier than to write another implementation of Eclipse API.

0
Comment actions Permalink

My short answer is that you would probably be better off porting the functionality instead of the code as IDEA's extensibility mechanism probably does not quite match that of the Eclipse platform yet. I would love to be proved otherwise though!

I too once considered porting Spindle to IDEA in the early days of the OpenAPI. There were and probably still are two potential issues that I shall outline below:

1) The OpenAPI might not yet provide enough backdoors to replicate all of Spindle's impressive and convenient features. Having several views of a single file in the editor pane and being able to easily switch from one view to another are the first examples that come to mind. This is only possible because Eclipse was built as a meta-IDE with extensibility right from the start.

2) Given Tapestry's evolution during the past couple of years, Spindle has been a bit of a moving target, and that in itself might be the biggest challenge here. I guess collaborating with Geoff/IntelligentWorks and the rest of the Tapestry folks should go a long way in keeping both Eclipse and IDEA versions in sync, but that sounds to me like those "famous last words"...

Aside from these issues, which version of Spindle/Tapestry would you be targetting?


Reading Spindle's wiki for the upcoming version 3:

http://tapestry.sourceforge.net/wiki/index.php/SpindleAlpha

and concentrating on the major features, I would guess that:

a) implementing the configuration assistants (read wizards) should now be much easier thanks to:

http://www.intellij.org/twiki/bin/view/Main/WizardPlugin

b) porting the XML editor would require the customisation of the way IDEA currently handles XML documents. Perhaps the XML Pack plugin:

http://www.intellij.org/twiki/bin/view/Main/XmlPack

could prove very useful in seeing how this could be done.

c) porting the HTML template editor could be quite complex unless full XHTML compliance was made a requirement

d) navigating between Tapestry artifacts should be possible using the OpenAPI

e) customising the project build process for creating a Tapestry-specific one might be achievable by using the same sort of trickery used in Spindle (see Spindle's wiki notes about The Builder)

I would be delighted to help if you are determined to pursue this effort. Let me know your thoughts and perhaps we could take this offline afterwards.

Cheers,

Franck

0
Comment actions Permalink


"Alexey Efimov" <aefimov@tengry.com> wrote in message
news:c21o7r$aq5$1@is.intellij.net...

Let's code Eclipse Emulator plugin for IDEA! :)
Heh ;)

>

Can you describe a litle more, that is this plugin can do?

>

Thanks!

>
>

http://spindle.sourceforge.net/

It provides a bunch of editor intentions for working with various tapestry
files. Probably best to start on it and see what I can come up with.

-- Glen


0
Comment actions Permalink


"Franck Rasolo" <no_mail@jetbrains.com> wrote in message
news:25685833.1078269200427.JavaMail.itn@is.intellij.net...

My short answer is that you would probably be better off porting the

functionality instead of the code as IDEA's extensibility mechanism probably
does not quite match that of the Eclipse platform yet. I would love to be
proved otherwise though!
>

I too once considered porting Spindle to IDEA in the early days of the

OpenAPI. There were and probably still are two potential issues that I shall
outline below:
>

1) The OpenAPI might not yet provide enough backdoors to replicate all of

Spindle's impressive and convenient features. Having several views of a
single file in the editor pane and being able to easily switch from one view
to another are the first examples that come to mind. This is only possible
because Eclipse was built as a meta-IDE with extensibility right from the
start.
>

2) Given Tapestry's evolution during the past couple of years, Spindle has

been a bit of a moving target, and that in itself might be the biggest
challenge here. I guess collaborating with Geoff/IntelligentWorks and the
rest of the Tapestry folks should go a long way in keeping both Eclipse and
IDEA versions in sync, but that sounds to me like those "famous last
words"...
>

Aside from these issues, which version of Spindle/Tapestry would you be

targetting?
>
>

Reading Spindle's wiki for the upcoming version 3:

>

http://tapestry.sourceforge.net/wiki/index.php/SpindleAlpha

>

and concentrating on the major features, I would guess that:

>

a) implementing the configuration assistants (read wizards) should now be

much easier thanks to:
>

http://www.intellij.org/twiki/bin/view/Main/WizardPlugin

>

b) porting the XML editor would require the customisation of the way IDEA

currently handles XML documents. Perhaps the XML Pack plugin:
>

http://www.intellij.org/twiki/bin/view/Main/XmlPack

>

could prove very useful in seeing how this could be done.

>

c) porting the HTML template editor could be quite complex unless full

XHTML compliance was made a requirement
>

d) navigating between Tapestry artifacts should be possible using the

OpenAPI
>

e) customising the project build process for creating a Tapestry-specific

one might be achievable by using the same sort of trickery used in Spindle
(see Spindle's wiki notes about The Builder)
>

I would be delighted to help if you are determined to pursue this effort.

Let me know your thoughts and perhaps we could take this offline afterwards.
>

Thanks for your detailed reply. Given what you've said it sounds like a
full port would be pretty hard. It sounds like a potential way to proceed
would be to look at a smaller subset of the spindle functionality. Even
simply being able to navigate quickly between related spindle files would be
very helpful.

I need to look at the source in detail to find out which bits would be
easiest and provide most value.

Regards,

Glen


0

Please sign in to leave a comment.