[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

评论操作 固定链接

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
评论操作 固定链接

Same here.

--Dave Griffith

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

请先登录再写评论。