IntelliJad - suggestions please

Hi all,

I'm currently writing a plugin for Jad and I'm looking for any suggestions or issues that people have with the existing Jad plugin.

My starting point for this was having to decompile into an existing source path directory, and from there I've added a bunch of fine-grained control functionality such as always/ask/never decompilation at the global/package level and decompile to memory. Further suggestions are welcomed.

Thanks,
Steve

11 comments

Wow, sounds great Steve.

My only beef with the current plugin (other than those you mentioned) is
that when there is an error during decompile you are notified in a modal
dialog. Output of this info to a log in a toolwindow would be much
nicer. Also, as I don't usually even read the error (as there always
seems to be one) maybe there should be an option for display of
non-fatal errors to be suppressed.

Looking forward to using your plugin!

Cheers,
N.

Steve Chaloner wrote:

Hi all,

I'm currently writing a plugin for Jad and I'm looking for any suggestions or issues that people have with the existing Jad plugin.

My starting point for this was having to decompile into an existing source path directory, and from there I've added a bunch of fine-grained control functionality such as always/ask/never decompilation at the global/package level and decompile to memory. Further suggestions are welcomed.

Thanks,
Steve

0

Output is now in a tool window, with a toggle to clear and close automatically if the decompilation was successful.

Thanks for the suggestion!

0

Awesome. When will it be available?

"Steve Chaloner" <no_reply@jetbrains.com> wrote in message
news:25576325.1181900142395.JavaMail.itn@is.intellij.net...

Output is now in a tool window, with a toggle to clear and close
automatically if the decompilation was successful.

>

Thanks for the suggestion!



0

Still got some issues to iron out before it's in a decent state, so next week at the earliest. I may do a an early release on sunday just to get some feedback.

At the moment i'm running it in memory-decompilation mode, so it transparently decompiles classes as it hits them - it's pretty nice to work with. Haven't written the to-disk decompilation yet but that's a very small task.

0

Hi Steve,

Glad the feedback was of some use.

Steve Chaloner wrote:

At the moment i'm running it in memory-decompilation mode, so it transparently decompiles classes as it hits them - it's pretty nice to work with.

To be honest in memory decompilation is all I want!

I'll be watching this space...

Cheers,
N.

0

What would be shockingly cool is if you could output a decompilation of a currently selected class as a separate "backing" pane in the editor. This would be like the "HTML Preview" tab on HTML files, but would instead be a "Jad decompilation" tab available in addition to the "signature-only" decompilation done by IDEA. Look at classes PerspectiveFileEditor and PerspectiveFileEditorProvider to see how this could be done. Much nicer than a tool-window.

--Dave Griffith

0

AFAIUI, Steve will only use the tool window for the non-code
output of jad - warnings, errors etc. The decompiled code appears in
the editor as per the old plugin. Is this correct Steve?

I personally wouldn't use IDEA's signature-only decompilation at all if
I had this plugin - it would only be useful if the decompilation failed,
at which time the IDEA decompilation should be shown instead. Adding
both tabs for completeness' sake is ok as long as the JAD output tab can
be shown by default.

N.

Dave Griffith wrote:

What would be shockingly cool is if you could output a decompilation
of a currently selected class as a separate "backing" pane in the
editor. This would be like the "HTML Preview" tab on HTML files, but
would instead be a "Jad decompilation" tab available in addition to
the "signature-only" decompilation done by IDEA. Look at classes
PerspectiveFileEditor and PerspectiveFileEditorProvider to see how
this could be done. Much nicer than a tool-window.

--Dave Griffith

0

Spot on. The behaviour is as follows:
1. Either open a class file, or manually select the decompile option for a currently open class file (it's possible to never decompile classes, or not decompile classes in given packages (including recursive exclusion))
2. IntelliJad will attempt to decompile the class file:
a) if the decompilation is successful, the class file editor will close and the java file editor for the decompiled class will open
b) if the decompilation is unsuccessful (success being defined by Jad, not the IntelliJad) the class file editor will remain open.

The tool window will give information on the process. This can be toggled to clear and close automatically on a successful decompilation. Typical content is:
"Examining 'D:/development/projects/stevechaloner.net/scn.web/WEB-INF/lib/ognl.jar!/'
Extracting 'ognl/ArrayPropertyAccessor.class'
D:/development/jad/jad.exe -s java -ff -radix10 -lradix10 -l0 -pv0 -pc _cls -pf _fld -pl _lcl -pm _mth -pp _prm -pe _ex -b -p C:\DOCUME1\Steve\LOCALS1\Temp\ij1182109336906\ArrayPropertyAccessor.class
Associating 'ArrayPropertyAccessor' with 'ognl'"

A screenshot is attached to give a better idea.

As for leaving the class file open even if the decompilation was successful - I can make that an option.

At the moment my chief issue is an ethical one - do i release the plugin in a couple of days in as v0.2, or wait until the competition is announced so I can enter it? Questions questions :)



Attachment(s):
intellijad-screenshot.jpg
0

Looks great. Wait for the competition, I'd say. I am :D
(Jetbrains take note ;))

N.

Steve Chaloner wrote:

Spot on. The behaviour is as follows:
1. Either open a class file, or manually select the decompile option for a currently open class file (it's possible to never decompile classes, or not decompile classes in given packages (including recursive exclusion))
2. IntelliJad will attempt to decompile the class file:
a) if the decompilation is successful, the class file editor will close and the java file editor for the decompiled class will open
b) if the decompilation is unsuccessful (success being defined by Jad, not the IntelliJad) the class file editor will remain open.

The tool window will give information on the process. This can be toggled to clear and close automatically on a successful decompilation. Typical content is:
"Examining 'D:/development/projects/stevechaloner.net/scn.web/WEB-INF/lib/ognl.jar!/'
Extracting 'ognl/ArrayPropertyAccessor.class'
D:/development/jad/jad.exe -s java -ff -radix10 -lradix10 -l0 -pv0 -pc _cls -pf _fld -pl _lcl -pm _mth -pp _prm -pe _ex -b -p C:\DOCUME1\Steve\LOCALS1\Temp\ij1182109336906\ArrayPropertyAccessor.class
Associating 'ArrayPropertyAccessor' with 'ognl'"

A screenshot is attached to give a better idea.

As for leaving the class file open even if the decompilation was successful - I can make that an option.

At the moment my chief issue is an ethical one - do i release the plugin in a couple of days in as v0.2, or wait until the competition is announced so I can enter it? Questions questions :)


------------------------------------------------------------------------

0

I emailed Jetbrains at the weekend to ask if they can give a heads-up on the competition dates but as yet, nothing. Guess we'll know when we know.

0

Dave,

does the explanation/screenshot below meet what you suggested, or do you have something else you'd like to see?

Thanks,
Steve

0

Please sign in to leave a comment.