Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 177773 Details for
Bug 322494
[clean up] Add a 'Sort modifiers' clean up
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
[patch]
Patch v1.1 [don't work]
bug-322494_v1.1.txt (text/plain), 21.33 KB, created by
Christophe Bismuth
on 2010-08-30 16:08:56 EDT
(
hide
)
Description:
Patch v1.1 [don't work]
Filename:
MIME Type:
Creator:
Christophe Bismuth
Created:
2010-08-30 16:08:56 EDT
Size:
21.33 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.jdt.ui >Index: core extension/org/eclipse/jdt/internal/corext/fix/CleanUpConstants.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.ui/core extension/org/eclipse/jdt/internal/corext/fix/CleanUpConstants.java,v >retrieving revision 1.28 >diff -u -r1.28 CleanUpConstants.java >--- core extension/org/eclipse/jdt/internal/corext/fix/CleanUpConstants.java 23 Sep 2009 17:11:21 -0000 1.28 >+++ core extension/org/eclipse/jdt/internal/corext/fix/CleanUpConstants.java 30 Aug 2010 19:16:46 -0000 >@@ -663,6 +663,19 @@ > public static final String VARIABLE_DECLARATION_USE_TYPE_ARGUMENTS_FOR_RAW_TYPE_REFERENCES= "cleanup.use_arguments_for_raw_type_references"; //$NON-NLS-1$ > > /** >+ * Correct modifiers order for variable declarations.<br> >+ * <br> >+ * Possible values: {TRUE, FALSE}<br> >+ * >+ * <br> >+ * >+ * @see CleanUpOptions#TRUE >+ * @see CleanUpOptions#FALSE >+ * @since 3.7 >+ */ >+ public static final String VARIABLE_DECLARATIONS_SORT_MODIFIERS= "cleanup.correct_variable_modifiers_order"; //$NON-NLS-1$ >+ >+ /** > * Removes unused imports. <br> > * <br> > * Possible values: {TRUE, FALSE}<br> >@@ -1135,6 +1148,9 @@ > options.setOption(VARIABLE_DECLARATIONS_USE_FINAL_LOCAL_VARIABLES, CleanUpOptions.TRUE); > options.setOption(VARIABLE_DECLARATIONS_USE_FINAL_PARAMETERS, CleanUpOptions.FALSE); > options.setOption(VARIABLE_DECLARATIONS_USE_FINAL_PRIVATE_FIELDS, CleanUpOptions.TRUE); >+ >+ //Modifiers Order >+ options.setOption(VARIABLE_DECLARATIONS_SORT_MODIFIERS, CleanUpOptions.FALSE); > > //Unused Code > options.setOption(REMOVE_UNUSED_CODE_IMPORTS, CleanUpOptions.TRUE); >@@ -1215,6 +1231,9 @@ > options.setOption(VARIABLE_DECLARATIONS_USE_FINAL_LOCAL_VARIABLES, CleanUpOptions.FALSE); > options.setOption(VARIABLE_DECLARATIONS_USE_FINAL_PARAMETERS, CleanUpOptions.FALSE); > options.setOption(VARIABLE_DECLARATIONS_USE_FINAL_PRIVATE_FIELDS, CleanUpOptions.TRUE); >+ >+ //Modifiers Order >+ options.setOption(VARIABLE_DECLARATIONS_SORT_MODIFIERS, CleanUpOptions.TRUE); > > //Unused Code > options.setOption(REMOVE_UNUSED_CODE_IMPORTS, CleanUpOptions.FALSE); >Index: core extension/org/eclipse/jdt/internal/corext/fix/FixMessages.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.ui/core extension/org/eclipse/jdt/internal/corext/fix/FixMessages.java,v >retrieving revision 1.42 >diff -u -r1.42 FixMessages.java >--- core extension/org/eclipse/jdt/internal/corext/fix/FixMessages.java 16 Nov 2009 16:55:03 -0000 1.42 >+++ core extension/org/eclipse/jdt/internal/corext/fix/FixMessages.java 30 Aug 2010 19:16:46 -0000 >@@ -117,6 +117,8 @@ > public static String VariableDeclarationFix_changeModifierOfUnknownToFinal_description; > public static String VariableDeclarationFix_ChangeMidifiersToFinalWherPossible_description; > >+ public static String VariableDeclarationFix_sortModifiers_description; >+ > static { > // initialize resource bundle > NLS.initializeMessages(BUNDLE_NAME, FixMessages.class); >Index: core extension/org/eclipse/jdt/internal/corext/fix/FixMessages.properties >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.ui/core extension/org/eclipse/jdt/internal/corext/fix/FixMessages.properties,v >retrieving revision 1.48 >diff -u -r1.48 FixMessages.properties >--- core extension/org/eclipse/jdt/internal/corext/fix/FixMessages.properties 20 May 2010 09:16:59 -0000 1.48 >+++ core extension/org/eclipse/jdt/internal/corext/fix/FixMessages.properties 30 Aug 2010 19:16:46 -0000 >@@ -83,6 +83,8 @@ > VariableDeclarationFix_add_final_change_name=Add final > VariableDeclarationFix_ChangeMidifiersToFinalWherPossible_description=Change modifiers to final where possible > >+VariableDeclarationFix_sortModifiers_description=Correct modifiers order >+ > PotentialProgrammingProblemsFix_calculatingUIDFailed_unknown=Could not calculate a serial version id for {0}. The type will be ignored. > PotentialProgrammingProblemsFix_add_id_change_name=Add Serial Version ID > PotentialProgrammingProblemsFix_calculatingUIDFailed_exception=Could not calculate serial version ids for serializable types in project {0}. The types will be ignored. Reason: {1}. >Index: core extension/org/eclipse/jdt/internal/corext/fix/SortModifiersFix.java >=================================================================== >RCS file: core extension/org/eclipse/jdt/internal/corext/fix/SortModifiersFix.java >diff -N core extension/org/eclipse/jdt/internal/corext/fix/SortModifiersFix.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ core extension/org/eclipse/jdt/internal/corext/fix/SortModifiersFix.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,125 @@ >+/******************************************************************************* >+ * Copyright (c) 2000, 2010 IBM Corporation and others. >+ * All rights reserved. This program and the accompanying materials >+ * are made available under the terms of the Eclipse Public License v1.0 >+ * which accompanies this distribution, and is available at >+ * http://www.eclipse.org/legal/epl-v10.html >+ * >+ * Contributors: >+ * IBM Corporation - initial API and implementation >+ * Chris West (Faux) <eclipse@goeswhere.com> - [clean up] "Use modifier 'final' where possible" can introduce compile errors - https://bugs.eclipse.org/bugs/show_bug.cgi?id=272532 >+ *******************************************************************************/ >+package org.eclipse.jdt.internal.corext.fix; >+ >+import java.util.ArrayList; >+import java.util.LinkedList; >+import java.util.List; >+ >+import org.eclipse.core.runtime.CoreException; >+ >+import org.eclipse.text.edits.TextEditGroup; >+ >+import org.eclipse.jdt.core.dom.ASTNode; >+import org.eclipse.jdt.core.dom.BodyDeclaration; >+import org.eclipse.jdt.core.dom.CompilationUnit; >+import org.eclipse.jdt.core.dom.SimpleName; >+import org.eclipse.jdt.core.dom.rewrite.ASTRewrite; >+ >+import org.eclipse.jdt.internal.corext.dom.HierarchicalASTVisitor; >+import org.eclipse.jdt.internal.corext.dom.ModifierRewrite; >+import org.eclipse.jdt.internal.corext.refactoring.structure.CompilationUnitRewrite; >+ >+import org.eclipse.jdt.ui.cleanup.ICleanUpFix; >+ >+public class SortModifiersFix extends CompilationUnitRewriteOperationsFix { >+ >+ private static class WithModifiersNodeFinder extends HierarchicalASTVisitor { >+ >+ private final List fWithModifiersNodes; >+ private final List fOperations; >+ >+ public WithModifiersNodeFinder(List withModifiersNodes, List operations) { >+ fWithModifiersNodes= withModifiersNodes; >+ fOperations= operations; >+ } >+ >+ /** >+ * {@inheritDoc} >+ */ >+ public boolean visit(BodyDeclaration node) { >+ if (node.modifiers().size() > 1) { >+ fWithModifiersNodes.add(node); >+ fOperations.add(createSortModifiersOperation(node)); >+ } >+ return super.visit(node); >+ } >+ >+ } >+ >+ private static class SortModifiersOperation extends CompilationUnitRewriteOperation { >+ >+ private final BodyDeclaration fWithModifiersNode; >+ >+ public SortModifiersOperation(BodyDeclaration withModifiersNode) { >+ fWithModifiersNode= withModifiersNode; >+ } >+ >+ /** >+ * {@inheritDoc} >+ */ >+ public void rewriteAST(CompilationUnitRewrite cuRewrite, LinkedProposalModel model) throws CoreException { >+ ASTRewrite rewrite= cuRewrite.getASTRewrite(); >+ >+ TextEditGroup group= createTextEditGroup(FixMessages.VariableDeclarationFix_sortModifiers_description, cuRewrite); >+ >+ int modifiers= fWithModifiersNode.getModifiers(); >+ ModifierRewrite modifierRewrite= ModifierRewrite.create(rewrite, fWithModifiersNode); >+ modifierRewrite.setModifiers(0, group); >+ modifierRewrite.setModifiers(modifiers, group); >+ } >+ } >+ >+ private static SortModifiersOperation createSortModifiersOperation(BodyDeclaration withModifiersNode) { >+ return new SortModifiersOperation(withModifiersNode); >+ } >+ >+ public static SortModifiersFix createFix(final CompilationUnit compilationUnit, ASTNode[] selectedNodes) { >+ List withModifiersNode= new LinkedList(); >+ List operations= new ArrayList(); >+ WithModifiersNodeFinder visitor= new WithModifiersNodeFinder(withModifiersNode, operations); >+ compilationUnit.accept(visitor); >+ if (selectedNodes.length == 1) { >+ if (selectedNodes[0] instanceof SimpleName) { >+ selectedNodes[0]= selectedNodes[0].getParent(); >+ } >+ selectedNodes[0].accept(visitor); >+ } else { >+ for (int i= 0; i < selectedNodes.length; i++) { >+ ASTNode selectedNode= selectedNodes[i]; >+ selectedNode.accept(visitor); >+ } >+ } >+ if (operations.size() == 0) >+ return null; >+ >+ CompilationUnitRewriteOperation[] fixRewriteOperations= (CompilationUnitRewriteOperation[])operations.toArray(new CompilationUnitRewriteOperation[operations.size()]); >+ >+ return new SortModifiersFix(FixMessages.VariableDeclarationFix_sortModifiers_description, compilationUnit, fixRewriteOperations); >+ } >+ >+ public static ICleanUpFix createCleanUp(CompilationUnit compilationUnit) { >+ List withModifiersNodes= new LinkedList(); >+ List operations= new ArrayList(); >+ WithModifiersNodeFinder finder= new WithModifiersNodeFinder(withModifiersNodes, operations); >+ compilationUnit.accept(finder); >+ >+ CompilationUnitRewriteOperation[] fixRewriteOperations= (CompilationUnitRewriteOperation[])operations.toArray(new CompilationUnitRewriteOperation[operations.size()]); >+ >+ return new SortModifiersFix(FixMessages.VariableDeclarationFix_sortModifiers_description, compilationUnit, fixRewriteOperations); >+ } >+ >+ protected SortModifiersFix(String name, CompilationUnit compilationUnit, CompilationUnitRewriteOperation[] fixRewriteOperations) { >+ super(name, compilationUnit, fixRewriteOperations); >+ } >+ >+} >Index: plugin.xml >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.ui/plugin.xml,v >retrieving revision 1.842 >diff -u -r1.842 plugin.xml >--- plugin.xml 29 Jul 2010 09:15:47 -0000 1.842 >+++ plugin.xml 30 Aug 2010 19:16:56 -0000 >@@ -6597,6 +6597,11 @@ > runAfter="org.eclipse.jdt.ui.cleanup.loop"> > </cleanUp> > <cleanUp >+ class="org.eclipse.jdt.internal.ui.fix.SortModifiersCleanUp" >+ id="org.eclipse.jdt.ui.cleanup.correct_modifiers_order" >+ runAfter="org.eclipse.jdt.ui.cleanup.variables"> >+ </cleanUp> >+ <cleanUp > class="org.eclipse.jdt.internal.ui.fix.ExpressionsCleanUp" > id="org.eclipse.jdt.ui.cleanup.expressions" > runAfter="org.eclipse.jdt.ui.cleanup.variables"> >Index: ui/org/eclipse/jdt/internal/ui/fix/SortModifiersCleanUp.java >=================================================================== >RCS file: ui/org/eclipse/jdt/internal/ui/fix/SortModifiersCleanUp.java >diff -N ui/org/eclipse/jdt/internal/ui/fix/SortModifiersCleanUp.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ ui/org/eclipse/jdt/internal/ui/fix/SortModifiersCleanUp.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,92 @@ >+/******************************************************************************* >+ * Copyright (c) 2000, 2010 IBM Corporation and others. >+ * All rights reserved. This program and the accompanying materials >+ * are made available under the terms of the Eclipse Public License v1.0 >+ * which accompanies this distribution, and is available at >+ * http://www.eclipse.org/legal/epl-v10.html >+ * >+ * Contributors: >+ * IBM Corporation - initial API and implementation >+ *******************************************************************************/ >+package org.eclipse.jdt.internal.ui.fix; >+ >+import java.util.ArrayList; >+import java.util.List; >+import java.util.Map; >+ >+import org.eclipse.core.runtime.CoreException; >+ >+import org.eclipse.jdt.core.dom.CompilationUnit; >+ >+import org.eclipse.jdt.internal.corext.fix.CleanUpConstants; >+import org.eclipse.jdt.internal.corext.fix.SortModifiersFix; >+ >+import org.eclipse.jdt.ui.cleanup.CleanUpContext; >+import org.eclipse.jdt.ui.cleanup.CleanUpRequirements; >+import org.eclipse.jdt.ui.cleanup.ICleanUpFix; >+ >+public class SortModifiersCleanUp extends AbstractCleanUp { >+ >+ public SortModifiersCleanUp(Map options) { >+ super(options); >+ } >+ >+ public SortModifiersCleanUp() { >+ super(); >+ } >+ >+ /** >+ * {@inheritDoc} >+ */ >+ public CleanUpRequirements getRequirements() { >+ return new CleanUpRequirements(requireAST(), false, false, null); >+ } >+ >+ private boolean requireAST() { >+ return isEnabled(CleanUpConstants.VARIABLE_DECLARATIONS_SORT_MODIFIERS); >+ } >+ >+ /** >+ * {@inheritDoc} >+ */ >+ public ICleanUpFix createFix(CleanUpContext context) throws CoreException { >+ CompilationUnit compilationUnit= context.getAST(); >+ if (compilationUnit == null) >+ return null; >+ >+ boolean addFinal= isEnabled(CleanUpConstants.VARIABLE_DECLARATIONS_SORT_MODIFIERS); >+ if (!addFinal) >+ return null; >+ >+ return SortModifiersFix.createCleanUp(compilationUnit); >+ } >+ >+ /** >+ * {@inheritDoc} >+ */ >+ public String[] getStepDescriptions() { >+ List result= new ArrayList(); >+ return (String[])result.toArray(new String[result.size()]); >+ } >+ >+ /** >+ * {@inheritDoc} >+ */ >+ public String getPreview() { >+ StringBuffer buf= new StringBuffer(); >+ >+ if (isEnabled(CleanUpConstants.VARIABLE_DECLARATIONS_SORT_MODIFIERS)) { >+ buf.append("abstract public class A {\n"); //$NON-NLS-1$ >+ buf.append(" static public final int FIELD= 0;\n"); //$NON-NLS-1$ >+ buf.append(" final synchronized protected void foo() {}\n"); //$NON-NLS-1$ >+ } else { >+ buf.append("public abstract class A {\n"); //$NON-NLS-1$ >+ buf.append(" public static final int FIELD= 0;\n"); //$NON-NLS-1$ >+ buf.append(" synchronized protected final void foo() {}\n"); //$NON-NLS-1$ >+ } >+ buf.append("}\n"); //$NON-NLS-1$ >+ >+ return buf.toString(); >+ } >+ >+} >Index: ui/org/eclipse/jdt/internal/ui/preferences/cleanup/CleanUpMessages.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/cleanup/CleanUpMessages.java,v >retrieving revision 1.19 >diff -u -r1.19 CleanUpMessages.java >--- ui/org/eclipse/jdt/internal/ui/preferences/cleanup/CleanUpMessages.java 21 May 2010 07:30:58 -0000 1.19 >+++ ui/org/eclipse/jdt/internal/ui/preferences/cleanup/CleanUpMessages.java 30 Aug 2010 19:16:58 -0000 >@@ -53,6 +53,7 @@ > public static String CodeStyleTabPage_CheckboxName_UseFinalForFields; > public static String CodeStyleTabPage_CheckboxName_UseFinalForLocals; > public static String CodeStyleTabPage_CheckboxName_UseFinalForParameters; >+ public static String CodeStyleTabPage_CheckboxName_SortModifiers; > public static String CodeStyleTabPage_CheckboxName_UseParentheses; > public static String CodeStyleTabPage_GroupName_ControlStatments; > public static String CodeStyleTabPage_GroupName_Expressions; >Index: ui/org/eclipse/jdt/internal/ui/preferences/cleanup/CleanUpMessages.properties >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/cleanup/CleanUpMessages.properties,v >retrieving revision 1.26 >diff -u -r1.26 CleanUpMessages.properties >--- ui/org/eclipse/jdt/internal/ui/preferences/cleanup/CleanUpMessages.properties 20 May 2010 09:16:59 -0000 1.26 >+++ ui/org/eclipse/jdt/internal/ui/preferences/cleanup/CleanUpMessages.properties 30 Aug 2010 19:16:58 -0000 >@@ -43,6 +43,7 @@ > CodeStyleTabPage_GroupName_VariableDeclarations=Variable declarations > CodeStyleTabPage_CheckboxName_UseFinalForFields=Private &fields > CodeStyleTabPage_CheckboxName_UseFinalForLocals=&Local variables >+CodeStyleTabPage_CheckboxName_SortModifiers=Sort modifiers > CodeStyleTabPage_CheckboxName_ConvertForLoopToEnhanced=Conver&t for loops to enhanced > CodeStyleTabPage_GroupName_ControlStatments=Control statements > CodeStyleTabPage_RadioName_UseBlocksSpecial=Always &except for single 'return' or 'throw' statements >Index: ui/org/eclipse/jdt/internal/ui/preferences/cleanup/CodeStyleTabPage.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/cleanup/CodeStyleTabPage.java,v >retrieving revision 1.12 >diff -u -r1.12 CodeStyleTabPage.java >--- ui/org/eclipse/jdt/internal/ui/preferences/cleanup/CodeStyleTabPage.java 10 Oct 2008 17:27:19 -0000 1.12 >+++ ui/org/eclipse/jdt/internal/ui/preferences/cleanup/CodeStyleTabPage.java 30 Aug 2010 19:16:58 -0000 >@@ -21,6 +21,7 @@ > import org.eclipse.jdt.internal.ui.fix.ControlStatementsCleanUp; > import org.eclipse.jdt.internal.ui.fix.ConvertLoopCleanUp; > import org.eclipse.jdt.internal.ui.fix.ExpressionsCleanUp; >+import org.eclipse.jdt.internal.ui.fix.SortModifiersCleanUp; > import org.eclipse.jdt.internal.ui.fix.VariableDeclarationCleanUp; > > public final class CodeStyleTabPage extends AbstractCleanUpTabPage { >@@ -36,7 +37,8 @@ > new ControlStatementsCleanUp(values), > new ConvertLoopCleanUp(values), > new ExpressionsCleanUp(values), >- new VariableDeclarationCleanUp(values) >+ new VariableDeclarationCleanUp(values), >+ new SortModifiersCleanUp(values), > }; > } > >@@ -72,5 +74,8 @@ > final CheckboxPreference useFinalParametersPref= createCheckboxPref(variableGroup, 1, CleanUpMessages.CodeStyleTabPage_CheckboxName_UseFinalForParameters, CleanUpConstants.VARIABLE_DECLARATIONS_USE_FINAL_PARAMETERS, CleanUpModifyDialog.FALSE_TRUE); > final CheckboxPreference useFinalVariablesPref= createCheckboxPref(variableGroup, 1, CleanUpMessages.CodeStyleTabPage_CheckboxName_UseFinalForLocals, CleanUpConstants.VARIABLE_DECLARATIONS_USE_FINAL_LOCAL_VARIABLES, CleanUpModifyDialog.FALSE_TRUE); > registerSlavePreference(useFinalPref, new CheckboxPreference[] {useFinalFieldsPref, useFinalParametersPref, useFinalVariablesPref}); >+ >+ final CheckboxPreference sortModifiersPref= createCheckboxPref(variableGroup, numColumns, CleanUpMessages.CodeStyleTabPage_CheckboxName_SortModifiers, CleanUpConstants.VARIABLE_DECLARATIONS_SORT_MODIFIERS, CleanUpModifyDialog.FALSE_TRUE); >+ registerPreference(sortModifiersPref); > } > } >Index: ui/org/eclipse/jdt/internal/ui/text/correction/QuickAssistProcessor.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/QuickAssistProcessor.java,v >retrieving revision 1.163 >diff -u -r1.163 QuickAssistProcessor.java >--- ui/org/eclipse/jdt/internal/ui/text/correction/QuickAssistProcessor.java 13 Jul 2010 17:32:48 -0000 1.163 >+++ ui/org/eclipse/jdt/internal/ui/text/correction/QuickAssistProcessor.java 30 Aug 2010 19:17:00 -0000 >@@ -115,6 +115,7 @@ > import org.eclipse.jdt.internal.corext.fix.CleanUpConstants; > import org.eclipse.jdt.internal.corext.fix.ControlStatementsFix; > import org.eclipse.jdt.internal.corext.fix.ConvertLoopFix; >+import org.eclipse.jdt.internal.corext.fix.SortModifiersFix; > import org.eclipse.jdt.internal.corext.fix.IProposableFix; > import org.eclipse.jdt.internal.corext.fix.LinkedProposalModel; > import org.eclipse.jdt.internal.corext.fix.VariableDeclarationFix; >@@ -139,6 +140,7 @@ > import org.eclipse.jdt.internal.ui.JavaPluginImages; > import org.eclipse.jdt.internal.ui.fix.ControlStatementsCleanUp; > import org.eclipse.jdt.internal.ui.fix.ConvertLoopCleanUp; >+import org.eclipse.jdt.internal.ui.fix.SortModifiersCleanUp; > import org.eclipse.jdt.internal.ui.fix.VariableDeclarationCleanUp; > import org.eclipse.jdt.internal.ui.javaeditor.JavaEditor; > import org.eclipse.jdt.internal.ui.text.correction.proposals.ASTRewriteCorrectionProposal; >@@ -201,6 +203,7 @@ > || getConvertIterableLoopProposal(context, coveringNode, null) > || getRemoveBlockProposals(context, coveringNode, null) > || getMakeVariableDeclarationFinalProposals(context, null) >+ || getSortModifiersProposals(context, null) > || getMissingCaseStatementProposals(context, coveringNode, null) > || getConvertStringConcatenationProposals(context, null); > } >@@ -239,6 +242,7 @@ > getConvertIterableLoopProposal(context, coveringNode, resultingCollections); > getRemoveBlockProposals(context, coveringNode, resultingCollections); > getMakeVariableDeclarationFinalProposals(context, resultingCollections); >+ getSortModifiersProposals(context, resultingCollections); > getConvertStringConcatenationProposals(context, resultingCollections); > getMissingCaseStatementProposals(context, coveringNode, resultingCollections); > } >@@ -1872,6 +1876,29 @@ > resultingCollections.add(proposal); > return true; > } >+ >+ private static boolean getSortModifiersProposals(IInvocationContext context, Collection resultingCollections) { >+ SelectionAnalyzer analyzer= new SelectionAnalyzer(Selection.createFromStartLength(context.getSelectionOffset(), context.getSelectionLength()), false); >+ context.getASTRoot().accept(analyzer); >+ ASTNode[] selectedNodes= analyzer.getSelectedNodes(); >+ if (selectedNodes.length == 0) >+ return false; >+ >+ IProposableFix fix= SortModifiersFix.createFix(context.getASTRoot(), selectedNodes); >+ if (fix == null) >+ return false; >+ >+ if (resultingCollections == null) >+ return true; >+ >+ Image image= JavaPluginImages.get(JavaPluginImages.IMG_CORRECTION_CHANGE); >+ Map options= new Hashtable(); >+ options.put(CleanUpConstants.VARIABLE_DECLARATIONS_SORT_MODIFIERS, CleanUpOptions.TRUE); >+ SortModifiersCleanUp cleanUp= new SortModifiersCleanUp(options); >+ FixCorrectionProposal proposal= new FixCorrectionProposal(fix, cleanUp, 5, image, context); >+ resultingCollections.add(proposal); >+ return true; >+ } > > private static boolean getInlineLocalProposal(IInvocationContext context, final ASTNode node, Collection proposals) throws CoreException { > if (!(node instanceof SimpleName))
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 322494
:
176660
|
176664
|
176665
|
177773
|
177774
|
177777
|
177778
|
187990
|
188358
|
191941