[ANN] Lineage 2.0 - Easy class extension, now with inner classes!

Still in time for the plugin contest, but much later than anticipated, I present Lineage 2.0

Feature highlights

Easy subclassing:
Position the cursor on the class or reference to a class you want to subclass and press Alt+Enter. An "Extend Class" intention appears, which when invoked, allows you to specify name, visibility (default: public) and destination package (default: the package from which you invoked it). All fields and button are accessible via the keyboard for the highest efficiency.

Easy subclassing by inner class:
Creating an inner subclass of another class is just as easy as creating a regular subclass. Press Alt+Enter on a class or reference to a class and invoke "Extend Class with Inner Class". The Extend Class dialog now allows you to specify a destination class (using IDEA's familiar Class Chooser dialog) and if the created class should be declared "static".

Highlight Usages in File for "import":
Invoking highlight (default CtrlShiftF7) usages on the "import" keyword, will highlight all references to the class imported in the open file. When the import statement is an "on demand" import, a chooser will first popup, allowing you to choose which class to highlight or to highlight all imported classes.

Highlight Usages in File for "extends" and "implements":
Easily highlight all implementing or overriding methods in the file by invoking Highlight Usages in File on an "extends" or "implements" keyword. If necessary a chooser will pop up where you can specify from which class you want the implementing/overriding members highlighted


This plugin is compatible with IntelliJ IDEA 6.0 and can be found in the Available list of the Plugins dialog in the Settings of IntelliJ IDEA. Alternatively it can be downloaded from: http://plugins.intellij.net/plugin/?id=104

10 comments

Bas, please see my replies on NNTP.

Someone should fix the bloody forum synchronization: http://www.intellij.net/forums/thread.jspa?threadID=260339&tstart=0

0

Hi Sasha,

Thanks for your report. I have uploaded an update which fixes the NPE on anonymous class references and show an "Implement" label on the OK button when implementing an interface. I could use the fix you mentioned too, but I am on vacation next week, so following updates will probably be after the contest end:-S
By the way, I love IntelliLang.

Bas

0

Hi Bas,

the shift-tab fix is actually rather simple and trivial to integrate. See the attachment.

Even more important though is the broken CtrlShiftF7 functionality in injected language contexts. Please add the following statement to your code in OverridingAction.override():

to fix that.

Sascha

PS: Enjoy the vacation ;)



Attachment(s):
ShiftTabAction.java
0

A nice enhancement would be to highlight usages of "import static" statements. I think it was a big mistake to allow this construct, because it makes it very difficult to see where diferent static constants and methods are coming from. It would be very helpful to see all references imported by these static imports.

import static com.abc.util.Constants.*;

0

Hi Bas,

I have this exception with latest EAP and Lineage 2.0 when create a new project:

0

There already is an inspection that highlights static imports.

--Dave Griffith

0

I'm back from vacation: The Shift+Tab problem is fixed in Lineage 2.1 using a modified version of the action you so kindly provided. The "Highlight Usage in File" in injected language contexts is fixed in 2.1 too.

Thanks,
Bas

0

Hi Alex,

The highlighting of usages of "import static" statements is now possible too. This feature can be found in the just released version 2.1 of Lineage.

Thanks for your request,
Bas

0

Hi t800t8 and Dave,

This exception should be fixed in version 2.1 of Lineage, please try it out.

Bas

0

Please sign in to leave a comment.