Dear IntelliJ,

we are structuring our classes by grouping "similar members" to categories.
For example, category "Constants" contains all static final fields. Category
"Utils" contains all non-static private methods. Category "Implemented"
contains all overridden/implemented methods. All members of a category are
located together within the source code. Each category starts with a
separator, in our case a line comment.

For most refactorings, like "Move...", "Encapsulate Field", "Create field",
etc., this is very important. Because currently, I always have to go to the
code the refactoring changed and move this code into the appropriate
category.

An example:
===========

public class G2PunktIdentifierType {

  // Constants
==============================================================

  public static final G2PunktIdentifierType ADV = new
G2PunktIdentifierType("A");
  public static final G2PunktIdentifierType RES = new
G2PunktIdentifierType("R");
  public static final G2PunktIdentifierType HNR = new
G2PunktIdentifierType("H");

  // Fields
=================================================================

  private final String shortName;

  // Setup
==================================================================

  private G2PunktIdentifierType(String shortName) {
    this.shortName = shortName;
  }

  // Accessing
==============================================================

  public String getShortName() {
    return shortName;
  }

  public String getLongName() {
    return longName;
  }

  public boolean isAutomatic() {
    return isAutomatic;
  }

  // Implemented
============================================================

  public String toString() {
    return shortName;
  }
}

Proposal:
=========

I would like IDEA to automatically layout in such a way. Therefore I would
suggest to expand the class templates (IDE options) to define categories and
corresponding separators.

A separator is automatically added/removed by IDEA, if there is at least
one/no member in the corresponding category.

Categories can be defined by an arbitrary combination of primitive
properties, like the following:
- static/non-static
- final/non-final
- public/protected/packagage/private
- constructor/method/field
- abstract/overridden/implemented/non-overridden
- getter/setter/others
- ... some other primitive properties, IDEA knows.

With best regards,
 Marc Strapetz.


_______________________________________________
Eap-list mailing list
[EMAIL PROTECTED]
http://www.intellij.com/mailman/listinfo/eap-list

Reply via email to