org.eclipse.jdt.internal.codeassist.complete.CompletionOnSingleNameReference Java Examples
The following examples show how to use
org.eclipse.jdt.internal.codeassist.complete.CompletionOnSingleNameReference.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: SnippetCompletionProposal.java From eclipse.jdt.ls with Eclipse Public License 2.0 | 6 votes |
private static boolean accept(ICompilationUnit cu, CompletionContext completionContext, boolean acceptClass) { if (completionContext != null && completionContext.isExtended()) { if (completionContext.isInJavadoc()) { return false; } if (completionContext instanceof InternalCompletionContext) { InternalCompletionContext internalCompletionContext = (InternalCompletionContext) completionContext; ASTNode node = internalCompletionContext.getCompletionNode(); if (node instanceof CompletionOnKeyword2) { return true; } if (node instanceof CompletionOnFieldType) { return true; } if (acceptClass && node instanceof CompletionOnSingleNameReference) { if (completionContext.getEnclosingElement() instanceof IMethod) { CompilationUnit ast = CoreASTProvider.getInstance().getAST(cu, CoreASTProvider.WAIT_YES, null); org.eclipse.jdt.core.dom.ASTNode astNode = ASTNodeSearchUtil.getAstNode(ast, completionContext.getTokenStart(), completionContext.getTokenEnd() - completionContext.getTokenStart() + 1); return (astNode == null || (astNode.getParent() instanceof ExpressionStatement)); } return true; } } } return false; }
Example #2
Source File: PatchExtensionMethodCompletionProposal.java From EasyMPermission with MIT License | 6 votes |
static TypeBinding getFirstParameterType(TypeDeclaration decl, CompletionProposalCollector completionProposalCollector) { TypeBinding firstParameterType = null; ASTNode node = getAssistNode(completionProposalCollector); if (node == null) return null; if (!(node instanceof CompletionOnQualifiedNameReference) && !(node instanceof CompletionOnSingleNameReference) && !(node instanceof CompletionOnMemberAccess)) return null; // Never offer on 'super.<autocomplete>'. if (node instanceof FieldReference && ((FieldReference)node).receiver instanceof SuperReference) return null; if (node instanceof NameReference) { Binding binding = ((NameReference) node).binding; // Unremark next block to allow a 'blank' autocomplete to list any extensions that apply to the current scope, but make sure we're not in a static context first, which this doesn't do. // Lacking good use cases, and having this particular concept be a little tricky on javac, means for now we don't support extension methods like this. this.X() will be fine, though. /* if ((node instanceof SingleNameReference) && (((SingleNameReference) node).token.length == 0)) { firstParameterType = decl.binding; } else */if (binding instanceof VariableBinding) { firstParameterType = ((VariableBinding) binding).type; } } else if (node instanceof FieldReference) { firstParameterType = ((FieldReference) node).actualReceiverType; } return firstParameterType; }