> ... it would not be possible to unambigously choose the insertion point 
> when imports are not intially ordered alphabetically.


Well, then you have a couple of options:

1) Always re-order all import statements prior to inserting a new one.  This
is a fast and relatively rare occurrence that would not be a performance
hit, but would guarantee proper ordering.  It would work for single import
statement inserts, as well as multiple inserts (like when pasting a block of
code).

2) *Try* to put the import statement where it should go.  Scan the imports
from the top, skipping over those lines that, according to the code style
options, go BEFORE the to-be-inserted import statement.  Insert the new line
just before the first import that belongs AFTER the to-be-inserted
statement.

For example, assume my code style options say to have java.* imports first,
then javax.*, then all others.  Also assume the following code that does NOT
obey said rules:

        package test;

        import java.awt.BorderLayout;
        import javax.swing.BorderFactory;
        import java.awt.Font;
        import java.awt.GridLayout;
        import javax.swing.SwingUtilities;
        import com.deephaven.gui.Util;
        import com.deephaven.gui.widgets.CollapsiblePanelHeader;
        import com.deephaven.gui.widgets.CollapsiblePanelSummary;

If I cause an insertion of "javax.swing.UIManager" IDEA will put it AFTER
"javax.swing.SwingUtilities" because it after all the java.* lines and
alphabetically falls at the end of the javax.* lines.

However, when "java.awt.event.MouseAdapter" is inserted, it will fall BEFORE
"javax.swing.BorderFactory" since the next line seems to be the beginning of
the "javax.*" block.

The results from both would look like this:

        package test;

        import java.awt.BorderLayout;
        import java.awt.event.MouseAdapter;
        import javax.swing.BorderFactory;
        import java.awt.Font;
        import java.awt.GridLayout;
        import javax.swing.SwingUtilities;
        import javax.swing.UIManager;
        import com.deephaven.gui.Util;
        import com.deephaven.gui.widgets.CollapsiblePanelHeader;
        import com.deephaven.gui.widgets.CollapsiblePanelSummary;

Any thoughts?

-sms


-----Original Message-----
From: Valentin Kipiatkov [mailto:[EMAIL PROTECTED]]
Sent: Wed, December 19, 2001 4:26 AM
To: [EMAIL PROTECTED]
Subject: Re: [Eap-list] Import ordering broken?


Yes, actually import insertion does not respect alphabetical ordering, only
the ordering in the Code Style options. The reason is that it would not be
possible to unambigously choose the insertion point when imports are not
intially ordered alphabetically.
The alphabetical sorting is performed by optimize imports only.

Best regards,
Valentin Kipiatkov
-----------------------------------------------------------
 IntelliJ Software, http://www.intellij.com/
 "Develop with pleasure"
-----------------------------------------------------------

----- Original Message -----
From: "Erb" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Tuesday, December 18, 2001 8:13 PM
Subject: Re: [Eap-list] Import ordering broken?


> OK, I found one scenario (using enclosed style), thopugh I think this
> does not have to
> do with the style, as you will see.
>
> Create a new class, type a line that includes "JLabel", and alt-enter to
> add the import.
> Then type a line using "JDialog", and include that import.  It is
> included below the JLabel import.
> But Optimize Imports then alphabetizes them.  I'll have to see if I can
> find another case
> other than alphabetical order.
>
>
> Valentin Kipiatkov wrote:
>
> > I checked this and could not reproduce it. Could you please provide some
way
> > to reproduce this? For example, send your code.style.xml settings and a
> > small example when the imports are inserted in a wrong order.
> >
> > Best regards,
> > Valentin Kipiatkov
> > -----------------------------------------------------------
> >  IntelliJ Software, http://www.intellij.com/
> >  "Develop with pleasure"
> > -----------------------------------------------------------
> >
> > ----- Original Message -----
> > From: "Erb" <[EMAIL PROTECTED]>
> > To: <[EMAIL PROTECTED]>
> > Sent: Friday, December 14, 2001 7:01 PM
> > Subject: Re: [Eap-list] Import ordering broken?
> >
> >
> >
> >>I have also noticed that the import rules are not respected when IDEA
> >>auto-creates
> >>an import statement.  I have often run Optimize Imports, then added some
> >>code
> >>that caused imports to be inserted, then did Optimize Imports again, and
> >>
> > the
> >
> >>imports changed their ordering.  Perhaps Ariadna release could address
> >>
> > this.
> >
> >>Marc Palmer wrote:
> >>
> >>
> >>>2.5 build #535
> >>>
> >>>My imports don't seem to be obeying the import ordering rules set out
in
> >>>IDE Options. The default settings too... Any others, java, javax... I
> >>>
> > had
> >
> >>>a list like this:
> >>>
> >>>import org....
> >>>import org....
> >>>import org....
> >>>
> >>>import java.
> >>>
> >>>import px....
> >>>
> >>>...and a reformat / save did not fix it. I changed the options in the
> >>>
> > IDE
> >
> >>>to use java, javax, then any others, and still no change after reformat
> >>>
> > /
> >
> >>>save.
> >>>
> >>>Am I missing something?
> >>>
> >>>Cheers
> >>>
> >>>
> >>>
> >>>_______________________________________________
> >>>Eap-list mailing list
> >>>[EMAIL PROTECTED]
> >>>http://www.intellij.com/mailman/listinfo/eap-list
> >>>
> >>>
> >>>
> >>
> >>--
> >>
> >>Erb
> >>
> >>==============================================================
> >>"The only time I like in the morning is afternoon."
> >>     - Russell D. Cooper
> >>
> >>"If you do everything, then you're all done."
> >>     - Melissa F. Cooper
> >>
> >>"Most of you are familiar with the virtues of a programmer.
> >>There are three, of course: laziness, impatience, and hubris."
> >>     - Larry Wall
> >>==============================================================
> >>
> >>
> >>_______________________________________________
> >>Eap-list mailing list
> >>[EMAIL PROTECTED]
> >>http://www.intellij.com/mailman/listinfo/eap-list
> >>
> >
> >
> > _______________________________________________
> > Eap-list mailing list
> > [EMAIL PROTECTED]
> > http://www.intellij.com/mailman/listinfo/eap-list
> >
> >
>
>
> --
>
> Erb
>
> ==============================================================
> "The only time I like in the morning is afternoon."
>      - Russell D. Cooper
>
> "If you do everything, then you're all done."
>      - Melissa F. Cooper
>
> "Most of you are familiar with the virtues of a programmer.
> There are three, of course: laziness, impatience, and hubris."
>      - Larry Wall
> ==============================================================
>


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


> <?xml version="1.0"?>
>
> <application>
>   <component class="com.intellij.psi.codeStyle.CodeStyleManager">
>     <option name="LINE_SEPARATOR" value="&#13;&#10;" />
>     <option name="INDENT_SIZE" value="4" />
>     <option name="CONTINUATION_INDENT_SIZE" value="2" />
>     <option name="KEEP_LINE_BREAKS" value="true" />
>     <option name="KEEP_FIRST_COLUMN_COMMENT" value="true" />
>     <option name="TAB_SIZE" value="4" />
>     <option name="USE_TAB_CHARACTER" value="false" />
>     <option name="KEEP_CONTROL_STATEMENT_IN_ONE_LINE" value="true" />
>     <option name="BRACE_STYLE" value="1" />
>     <option name="CLASS_BRACE_STYLE" value="1" />
>     <option name="METHOD_BRACE_STYLE" value="1" />
>     <option name="ELSE_ON_NEW_LINE" value="true" />
>     <option name="WHILE_ON_NEW_LINE" value="false" />
>     <option name="CATCH_ON_NEW_LINE" value="true" />
>     <option name="FINALLY_ON_NEW_LINE" value="true" />
>     <option name="INDENT_CASE_FROM_SWITCH" value="true" />
>     <option name="SPECIAL_ELSE_IF_TREATMENT" value="true" />
>     <option name="ALIGN_MULTILINE_PARAMETERS" value="true" />
>     <option name="ALIGN_MULTILINE_PARAMETERS_IN_CALLS" value="false" />
>     <option name="ALIGN_MULTILINE_FOR" value="true" />
>     <option name="KEEP_BLANK_LINES_IN_DECLARATIONS" value="1" />
>     <option name="KEEP_BLANK_LINES_IN_CODE" value="2" />
>     <option name="BLANK_LINES_BEFORE_PACKAGE" value="1" />
>     <option name="BLANK_LINES_AFTER_PACKAGE" value="1" />
>     <option name="BLANK_LINES_BEFORE_IMPORTS" value="1" />
>     <option name="BLANK_LINES_AFTER_IMPORTS" value="1" />
>     <option name="BLANK_LINES_AROUND_CLASS" value="1" />
>     <option name="BLANK_LINES_AROUND_FIELD" value="0" />
>     <option name="BLANK_LINES_AROUND_METHOD" value="1" />
>     <option name="BLANK_LINES_AFTER_CLASS_HEADER" value="1" />
>     <option name="SPACE_AROUND_ASSIGNMENT_OPERATORS" value="true" />
>     <option name="SPACE_AROUND_LOGICAL_OPERATORS" value="true" />
>     <option name="SPACE_AROUND_EQUALITY_OPERATORS" value="true" />
>     <option name="SPACE_AROUND_RELATIONAL_OPERATORS" value="true" />
>     <option name="SPACE_AROUND_BITWISE_OPERATORS" value="true" />
>     <option name="SPACE_AROUND_ADDITIVE_OPERATORS" value="true" />
>     <option name="SPACE_AROUND_MULTIPLICATIVE_OPERATORS" value="true" />
>     <option name="SPACE_AROUND_SHIFT_OPERATORS" value="true" />
>     <option name="SPACE_AFTER_COMMA" value="true" />
>     <option name="SPACE_BEFORE_COMMA" value="false" />
>     <option name="SPACE_AFTER_SEMICOLON" value="true" />
>     <option name="SPACE_BEFORE_SEMICOLON" value="false" />
>     <option name="SPACE_WITHIN_PARENTHESES" value="false" />
>     <option name="SPACE_WITHIN_METHOD_CALL_PARENTHESES" value="false" />
>     <option name="SPACE_WITHIN_METHOD_PARENTHESES" value="false" />
>     <option name="SPACE_WITHIN_IF_PARENTHESES" value="false" />
>     <option name="SPACE_WITHIN_WHILE_PARENTHESES" value="false" />
>     <option name="SPACE_WITHIN_FOR_PARENTHESES" value="false" />
>     <option name="SPACE_WITHIN_CATCH_PARENTHESES" value="false" />
>     <option name="SPACE_WITHIN_SWITCH_PARENTHESES" value="false" />
>     <option name="SPACE_WITHIN_SYNCHRONIZED_PARENTHESES" value="false" />
>     <option name="SPACE_WITHIN_CAST_PARENTHESES" value="false" />
>     <option name="SPACE_WITHIN_BRACKETS" value="false" />
>     <option name="SPACE_AFTER_TYPE_CAST" value="false" />
>     <option name="SPACE_BEFORE_METHOD_CALL_PARENTHESES" value="false" />
>     <option name="SPACE_BEFORE_METHOD_PARENTHESES" value="false" />
>     <option name="SPACE_BEFORE_IF_PARENTHESES" value="true" />
>     <option name="SPACE_BEFORE_WHILE_PARENTHESES" value="false" />
>     <option name="SPACE_BEFORE_FOR_PARENTHESES" value="false" />
>     <option name="SPACE_BEFORE_CATCH_PARENTHESES" value="false" />
>     <option name="SPACE_BEFORE_SWITCH_PARENTHESES" value="false" />
>     <option name="SPACE_BEFORE_SYNCHRONIZED_PARENTHESES" value="false" />
>     <option name="SPACE_BEFORE_CLASS_LBRACE" value="true" />
>     <option name="SPACE_BEFORE_METHOD_LBRACE" value="true" />
>     <option name="SPACE_BEFORE_IF_LBRACE" value="true" />
>     <option name="SPACE_BEFORE_ELSE_LBRACE" value="true" />
>     <option name="SPACE_BEFORE_WHILE_LBRACE" value="true" />
>     <option name="SPACE_BEFORE_FOR_LBRACE" value="true" />
>     <option name="SPACE_BEFORE_DO_LBRACE" value="true" />
>     <option name="SPACE_BEFORE_SWITCH_LBRACE" value="true" />
>     <option name="SPACE_BEFORE_TRY_LBRACE" value="true" />
>     <option name="SPACE_BEFORE_CATCH_LBRACE" value="true" />
>     <option name="SPACE_BEFORE_FINALLY_LBRACE" value="true" />
>     <option name="SPACE_BEFORE_SYNCHRONIZED_LBRACE" value="true" />
>     <option name="CLASS_TEMPLATE" value="/*&#10; *  $NAME$ $Revision: $
$Date:$&#10; *&#10; *  Copyright, 2001 LN Holdings Corporation. All Rights
Reserved.&#10; *                   Liquidnet Holdings, Inc.&#10; *
498 Seventh Ave, New York, New York 10018&#10; *&#10; *  UNPUBLISHED --
Rights reserved under the copyright laws of&#10; *  The United States. Use
of a copyright notice is precautionary&#10; *  only and does not imply
publication or disclosure.&#10; *&#10; *  This documentation contains
proprietary and confidential&#10; *  information of LN Holdings Corporation.
use, disclosure, or&#10; *  reproduction is prohibited without the prior
express written&#10; *  permission of LN Holdings Corporation.&#10; *&#10;
*&#10; */&#10;package $PACKAGE_NAME$;&#10;&#10;public class $NAME$ { &#10;}"
/>
>     <option name="ADJUST_CLASS_TEMPLATE" value="true" />
>     <option name="INTERFACE_TEMPLATE" value="/*&#10; *  $NAME$ $Revision:
$ $Date: $&#10; *&#10; *  Copyright, 2001 LN Holdings Corporation. All
Rights Reserved.&#10; *                   Liquidnet Holdings, Inc.&#10; *
498 Seventh Ave, New York, New York 10018&#10; *&#10; *  UNPUBLISHED --
Rights reserved under the copyright laws of&#10; *  The United States. Use
of a copyright notice is precautionary&#10; *  only and does not imply
publication or disclosure.&#10; *&#10; *  This documentation contains
proprietary and confidential&#10; *  information of LN Holdings Corporation.
use, disclosure, or&#10; *  reproduction is prohibited without the prior
express written&#10; *  permission of LN Holdings Corporation.&#10; *&#10;
*&#10; */&#10;package $PACKAGE_NAME$;&#10;&#10;public interface $NAME$
 &#10;}" />
>     <option name="ADJUST_INTERFACE_TEMPLATE" value="true" />
>     <option name="FIELD_NAME_PREFIX" value="_" />
>     <option name="STATIC_FIELD_NAME_PREFIX" value="_" />
>     <option name="PARAMETER_NAME_PREFIX" value="" />
>     <option name="LOCAL_VARIABLE_NAME_PREFIX" value="" />
>     <option name="FIELD_TYPE_TO_NAME">
>       <value />
>     </option>
>     <option name="STATIC_FIELD_TYPE_TO_NAME">
>       <value />
>     </option>
>     <option name="PARAMETER_TYPE_TO_NAME">
>       <value>
>         <pair type="int" name="i" />
>         <pair type="byte" name="b" />
>         <pair type="char" name="c" />
>         <pair type="long" name="l" />
>         <pair type="short" name="i" />
>         <pair type="boolean" name="b" />
>         <pair type="double" name="v" />
>         <pair type="float" name="v" />
>         <pair type="java.lang.Object" name="o" />
>         <pair type="java.lang.String" name="s" />
>         <pair type="*Exception" name="x" />
>         <pair type="*Event" name="event" />
>       </value>
>     </option>
>     <option name="LOCAL_VARIABLE_TYPE_TO_NAME">
>       <value>
>         <pair type="int" name="i" />
>         <pair type="byte" name="b" />
>         <pair type="char" name="c" />
>         <pair type="long" name="l" />
>         <pair type="short" name="i" />
>         <pair type="boolean" name="b" />
>         <pair type="double" name="v" />
>         <pair type="float" name="v" />
>         <pair type="java.lang.Object" name="o" />
>         <pair type="java.lang.String" name="s" />
>         <pair type="*Event" name="event" />
>       </value>
>     </option>
>     <option name="USE_FQ_CLASS_NAMES" value="false" />
>     <option name="USE_SINGLE_CLASS_IMPORTS" value="true" />
>     <option name="CLASS_COUNT_TO_USE_IMPORT_ON_DEMAND" value="7" />
>     <option name="PACKAGES_TO_USE_IMPORT_ON_DEMAND">
>       <value />
>     </option>
>     <option name="IMPORT_LAYOUT_TABLE">
>       <value>
>         <package name="java" withSubpackages="true" />
>         <emptyLine />
>         <package name="javax" withSubpackages="true" />
>         <emptyLine />
>         <package name="com.smartsockets" withSubpackages="true" />
>         <emptyLine />
>         <package name="junit" withSubpackages="true" />
>         <emptyLine />
>         <package name="com.liquidnet" withSubpackages="true" />
>         <emptyLine />
>         <package name="com.liquidnet.trader" withSubpackages="true" />
>         <emptyLine />
>         <package name="com.liquidnet.trader.swing" withSubpackages="true"
/>
>         <emptyLine />
>         <package name="com.liquidnet.member" withSubpackages="true" />
>         <emptyLine />
>         <package name="com.liquidnet.member.swing" withSubpackages="true"
/>
>         <emptyLine />
>         <package name="" withSubpackages="true" />
>       </value>
>     </option>
>     <option name="FIELDS_ORDER_WEIGHT" value="1" />
>     <option name="METHODS_ORDER_WEIGHT" value="3" />
>     <option name="CONSTRUCTORS_ORDER_WEIGHT" value="2" />
>     <option name="INNER_CLASSES_ORDER_WEIGHT" value="4" />
>   </component>
> </application>
>
>


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

-------------------------------------------------- 
DISCLAIMER 
This e-mail, and any attachments thereto, is intended only for use by the
addressee(s) named herein and may contain legally privileged and/or
confidential information.  If you are not the intended recipient of this
e-mail, you are hereby notified that any dissemination, distribution or
copying of this e-mail, and any attachments thereto, is strictly prohibited.
If you have received this e-mail in error, please immediately notify me and
permanently delete the original and any copy of any e-mail and any printout
thereof. 

E-mail transmission cannot be guaranteed to be secure or error-free.  The
sender therefore does not accept liability for any errors or omissions in
the contents of this message which arise as a result of e-mail transmission.

NOTICE REGARDING PRIVACY AND CONFIDENTIALITY 

Knight Trading Group may, at its discretion, monitor and review the content
of all e-mail communications. 


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

Reply via email to