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 95736 Details for
Bug 209467
[quick assist] Qualify simple type reference
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read
this important communication.
[patch]
Patch for content assist entry to qualify a simple type name
qualify.txt (text/plain), 8.56 KB, created by
NoName
on 2008-04-11 14:49:46 EDT
(
hide
)
Description:
Patch for content assist entry to qualify a simple type name
Filename:
MIME Type:
Creator:
NoName
Created:
2008-04-11 14:49:46 EDT
Size:
8.56 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.jdt.ui.tests >Index: ui/org/eclipse/jdt/ui/tests/quickfix/AdvancedQuickAssistTest.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.ui.tests/ui/org/eclipse/jdt/ui/tests/quickfix/AdvancedQuickAssistTest.java,v >retrieving revision 1.30 >diff -u -r1.30 AdvancedQuickAssistTest.java >--- ui/org/eclipse/jdt/ui/tests/quickfix/AdvancedQuickAssistTest.java 23 Oct 2007 15:32:52 -0000 1.30 >+++ ui/org/eclipse/jdt/ui/tests/quickfix/AdvancedQuickAssistTest.java 11 Apr 2008 18:47:13 -0000 >@@ -2478,4 +2478,60 @@ > assertExpectedExistInProposals(proposals, expected); > } > >+ public void testQualifyType1() throws Exception { >+ IPackageFragment pack1= fSourceFolder.createPackageFragment("test1", false, null); >+ StringBuffer buf= new StringBuffer(); >+ buf.append("package test1;\n"); >+ buf.append("public class E {\n"); >+ buf.append(" public void foo(String s) {\n"); >+ buf.append(" }\n"); >+ buf.append("}\n"); >+ ICompilationUnit cu= pack1.createCompilationUnit("E.java", buf.toString(), false, null); >+ >+ int offset= buf.toString().indexOf("ring"); >+ AssistContext context= getCorrectionContext(cu, offset, 0); >+ List proposals= collectAssists(context, false); >+ >+ assertCorrectLabels(proposals); >+ >+ buf= new StringBuffer(); >+ buf.append("package test1;\n"); >+ buf.append("public class E {\n"); >+ buf.append(" public void foo(java.lang.String s) {\n"); >+ buf.append(" }\n"); >+ buf.append("}\n"); >+ String expected1= buf.toString(); >+ >+ assertExpectedExistInProposals(proposals, new String[] {expected1}); >+ } >+ >+ public void testQualifyType2() throws Exception { >+ IPackageFragment pack1= fSourceFolder.createPackageFragment("test1", false, null); >+ StringBuffer buf= new StringBuffer(); >+ buf.append("package test1;\n"); >+ buf.append("public class E {\n"); >+ buf.append(" public void foo(String s) {\n"); >+ buf.append(" System.out.print(s);\n"); >+ buf.append(" }\n"); >+ buf.append("}\n"); >+ ICompilationUnit cu= pack1.createCompilationUnit("E.java", buf.toString(), false, null); >+ >+ int offset= buf.toString().indexOf("ystem"); >+ AssistContext context= getCorrectionContext(cu, offset, 0); >+ List proposals= collectAssists(context, false); >+ >+ assertCorrectLabels(proposals); >+ >+ buf= new StringBuffer(); >+ buf.append("package test1;\n"); >+ buf.append("public class E {\n"); >+ buf.append(" public void foo(String s) {\n"); >+ buf.append(" java.lang.System.out.print(s);\n"); >+ buf.append(" }\n"); >+ buf.append("}\n"); >+ String expected1= buf.toString(); >+ >+ assertExpectedExistInProposals(proposals, new String[] {expected1}); >+ } >+ > } >#P org.eclipse.jdt.ui >Index: ui/org/eclipse/jdt/internal/ui/text/correction/AdvancedQuickAssistProcessor.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/AdvancedQuickAssistProcessor.java,v >retrieving revision 1.53 >diff -u -r1.53 AdvancedQuickAssistProcessor.java >--- ui/org/eclipse/jdt/internal/ui/text/correction/AdvancedQuickAssistProcessor.java 28 Nov 2007 13:25:38 -0000 1.53 >+++ ui/org/eclipse/jdt/internal/ui/text/correction/AdvancedQuickAssistProcessor.java 11 Apr 2008 18:47:15 -0000 >@@ -123,7 +123,8 @@ > || getReplaceIfElseWithConditionalProposals(context, coveringNode, null) || getReplaceConditionalWithIfElseProposals(context, coveringNode, null) > || getInverseLocalVariableProposals(context, coveringNode, null) || getPushNegationDownProposals(context, coveringNode, null) > || getPullNegationUpProposals(context, coveredNodes, null) || getJoinIfListInIfElseIfProposals(context, coveringNode, coveredNodes, null) >- || getConvertSwitchToIfProposals(context, coveringNode, null) || GetterSetterCorrectionSubProcessor.addGetterSetterProposal(context, coveringNode, null, null); >+ || getConvertSwitchToIfProposals(context, coveringNode, null) || GetterSetterCorrectionSubProcessor.addGetterSetterProposal(context, coveringNode, null, null) >+ || getQualifyTypenameProposals(context, coveringNode, null); > } > return false; > } >@@ -161,6 +162,7 @@ > getJoinIfListInIfElseIfProposals(context, coveringNode, coveredNodes, resultingCollections); > getConvertSwitchToIfProposals(context, coveringNode, resultingCollections); > GetterSetterCorrectionSubProcessor.addGetterSetterProposal(context, coveringNode, locations, resultingCollections); >+ getQualifyTypenameProposals(context, coveringNode, resultingCollections); > } > > return (IJavaCompletionProposal[]) resultingCollections.toArray(new IJavaCompletionProposal[resultingCollections.size()]); >@@ -785,6 +787,44 @@ > return parenthesizedExpression; > } > >+ private static boolean getQualifyTypenameProposals(IInvocationContext context, ASTNode node, Collection resultingCollections) { >+ if (!(node instanceof SimpleName)) >+ return false; >+ SimpleName simpleName = (SimpleName) node; >+ IBinding binding= simpleName.resolveBinding(); >+ if (!(binding instanceof ITypeBinding)) >+ return false; >+ ITypeBinding typeBinding= (ITypeBinding) binding; >+ if (typeBinding.isPrimitive() || typeBinding.isNullType() >+ || typeBinding.isAnonymous()) >+ return false; >+ if (typeBinding.getPackage() == null) >+ return false; >+ String[] split= typeBinding.getPackage().getName().split("[.]"); //$NON-NLS-1$ >+ if (split.length < 1) >+ return false; >+ if (resultingCollections == null) { >+ return true; >+ } >+ AST ast = simpleName.getAST(); >+ ASTRewrite rewrite= ASTRewrite.create(ast); >+ SimpleName nsn= ast.newSimpleName(simpleName.getFullyQualifiedName()); >+ QualifiedName qn = null; >+ SimpleName base= ast.newSimpleName(split[0]); >+ for (int i = 1; i < split.length; i++) { >+ SimpleName tmp= ast.newSimpleName(split[i]); >+ qn= ast.newQualifiedName(base, tmp); >+ } >+ qn= ast.newQualifiedName(qn, nsn); >+ rewrite.replace(simpleName, qn, null); >+ // add correction proposal >+ String label= CorrectionMessages.AdvancedQuickAssistProcessor_qualifyTypename_description; >+ Image image= JavaPluginImages.get(JavaPluginImages.IMG_CORRECTION_CHANGE); >+ ASTRewriteCorrectionProposal proposal= new ASTRewriteCorrectionProposal(label, context.getCompilationUnit(), rewrite, 1, image); >+ resultingCollections.add(proposal); >+ return true; >+ } >+ > private static boolean getSplitAndConditionProposals(IInvocationContext context, ASTNode node, Collection resultingCollections) { > Operator andOperator= InfixExpression.Operator.CONDITIONAL_AND; > // check that user invokes quick assist on infix expression >Index: ui/org/eclipse/jdt/internal/ui/text/correction/CorrectionMessages.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/CorrectionMessages.java,v >retrieving revision 1.72 >diff -u -r1.72 CorrectionMessages.java >--- ui/org/eclipse/jdt/internal/ui/text/correction/CorrectionMessages.java 18 Mar 2008 00:45:04 -0000 1.72 >+++ ui/org/eclipse/jdt/internal/ui/text/correction/CorrectionMessages.java 11 Apr 2008 18:47:15 -0000 >@@ -305,6 +305,7 @@ > public static String AdvancedQuickAssistProcessor_joinWithOr_description; > public static String AdvancedQuickAssistProcessor_splitOrCondition_description; > public static String AdvancedQuickAssistProcessor_exchangeOperands_description; >+ public static String AdvancedQuickAssistProcessor_qualifyTypename_description; > public static String AddTypeParameterProposal_method_label; > public static String AddTypeParameterProposal_type_label; > >Index: ui/org/eclipse/jdt/internal/ui/text/correction/CorrectionMessages.properties >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/CorrectionMessages.properties,v >retrieving revision 1.247 >diff -u -r1.247 CorrectionMessages.properties >--- ui/org/eclipse/jdt/internal/ui/text/correction/CorrectionMessages.properties 18 Mar 2008 00:45:04 -0000 1.247 >+++ ui/org/eclipse/jdt/internal/ui/text/correction/CorrectionMessages.properties 11 Apr 2008 18:47:16 -0000 >@@ -375,6 +375,8 @@ > AdvancedQuickAssistProcessor_joinWithOr_description=Join selected 'if' statements with || > AdvancedQuickAssistProcessor_splitOrCondition_description=Split || condition > AdvancedQuickAssistProcessor_exchangeOperands_description=Exchange left and right operands for infix expression >+AdvancedQuickAssistProcessor_qualifyTypename_description=Qualify type name >+ > > AddTypeParameterProposal_method_label=Add type parameter ''{0}'' to ''{1}'' > AddTypeParameterProposal_type_label=Add type parameter ''{0}'' to ''{1}''
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 209467
: 95736 |
97517