本文整理汇总了Java中org.eclipse.jdt.core.CompletionProposal.ANONYMOUS_CLASS_DECLARATION属性的典型用法代码示例。如果您正苦于以下问题:Java CompletionProposal.ANONYMOUS_CLASS_DECLARATION属性的具体用法?Java CompletionProposal.ANONYMOUS_CLASS_DECLARATION怎么用?Java CompletionProposal.ANONYMOUS_CLASS_DECLARATION使用的例子?那么, 这里精选的属性代码示例或许可以为您提供帮助。您也可以进一步了解该属性所在类org.eclipse.jdt.core.CompletionProposal
的用法示例。
在下文中一共展示了CompletionProposal.ANONYMOUS_CLASS_DECLARATION属性的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: createParameterList
/**
* Creates and returns a parameter list of the given method or type proposal suitable for
* display. The list does not include parentheses. The lower bound of parameter types is
* returned.
* <p>
* Examples:
*
* <pre>
* "void method(int i, String s)" -> "int i, String s"
* "? extends Number method(java.lang.String s, ? super Number n)" -> "String s, Number n"
* </pre>
*
* </p>
*
* @param proposal the proposal to create the parameter list for
* @return the list of comma-separated parameters suitable for display
*/
public StringBuilder createParameterList(CompletionProposal proposal) {
int kind= proposal.getKind();
switch (kind) {
case CompletionProposal.METHOD_REF:
case CompletionProposal.CONSTRUCTOR_INVOCATION:
return appendUnboundedParameterList(new StringBuilder(), proposal);
case CompletionProposal.TYPE_REF:
case CompletionProposal.JAVADOC_TYPE_REF:
return appendTypeParameterList(new StringBuilder(), proposal);
case CompletionProposal.ANONYMOUS_CLASS_DECLARATION:
case CompletionProposal.ANONYMOUS_CLASS_CONSTRUCTOR_INVOCATION:
return appendUnboundedParameterList(new StringBuilder(), proposal);
default:
Assert.isLegal(false);
return null; // dummy
}
}
示例2: createParameterList
/**
* Creates and returns a parameter list of the given method or type proposal suitable for display.
* The list does not include parentheses. The lower bound of parameter types is returned.
*
* <p>Examples:
*
* <pre>
* "void method(int i, String s)" -> "int i, String s"
* "? extends Number method(java.lang.String s, ? super Number n)" -> "String s, Number n"
* </pre>
*
* @param proposal the proposal to create the parameter list for
* @return the list of comma-separated parameters suitable for display
*/
public String createParameterList(CompletionProposal proposal) {
String paramList;
int kind = proposal.getKind();
switch (kind) {
case CompletionProposal.METHOD_REF:
case CompletionProposal.CONSTRUCTOR_INVOCATION:
paramList = appendUnboundedParameterList(new StyledString(), proposal).getString();
return Strings.markJavaElementLabelLTR(paramList);
case CompletionProposal.TYPE_REF:
case CompletionProposal.JAVADOC_TYPE_REF:
paramList = appendTypeParameterList(new StyledString(), proposal).getString();
return Strings.markJavaElementLabelLTR(paramList);
case CompletionProposal.ANONYMOUS_CLASS_DECLARATION:
case CompletionProposal.ANONYMOUS_CLASS_CONSTRUCTOR_INVOCATION:
paramList = appendUnboundedParameterList(new StyledString(), proposal).getString();
return Strings.markJavaElementLabelLTR(paramList);
default:
Assert.isLegal(false);
return null; // dummy
}
}
示例3: ignoreAll
private void ignoreAll() {
int[] ignoredKinds = new int[] {
CompletionProposal.ANONYMOUS_CLASS_DECLARATION,
CompletionProposal.FIELD_REF, CompletionProposal.KEYWORD,
CompletionProposal.LABEL_REF, CompletionProposal.LOCAL_VARIABLE_REF,
CompletionProposal.METHOD_REF, CompletionProposal.METHOD_DECLARATION,
CompletionProposal.PACKAGE_REF, CompletionProposal.TYPE_REF,
CompletionProposal.VARIABLE_DECLARATION,
CompletionProposal.POTENTIAL_METHOD_DECLARATION,
CompletionProposal.METHOD_NAME_REFERENCE,
CompletionProposal.ANNOTATION_ATTRIBUTE_REF,
CompletionProposal.JAVADOC_FIELD_REF,
CompletionProposal.JAVADOC_METHOD_REF,
CompletionProposal.JAVADOC_TYPE_REF,
CompletionProposal.JAVADOC_VALUE_REF,
CompletionProposal.JAVADOC_PARAM_REF,
CompletionProposal.JAVADOC_BLOCK_TAG,
CompletionProposal.JAVADOC_INLINE_TAG, CompletionProposal.FIELD_IMPORT,
CompletionProposal.METHOD_IMPORT, CompletionProposal.TYPE_IMPORT};
for (int kind : ignoredKinds) {
setIgnored(kind, true);
}
}
示例4: computeSortText
/**
* Computes the relevance for a given <code>CompletionProposal</code>.
*
* @param proposal the proposal to compute the relevance for
* @return the relevance for <code>proposal</code>
*/
public static String computeSortText(CompletionProposal proposal) {
final int baseRelevance= proposal.getRelevance() * 16;
switch (proposal.getKind()) {
case CompletionProposal.LABEL_REF:
return convertRelevance( baseRelevance + 1);
case CompletionProposal.KEYWORD:
return convertRelevance(baseRelevance + 2);
case CompletionProposal.TYPE_REF:
case CompletionProposal.ANONYMOUS_CLASS_DECLARATION:
case CompletionProposal.ANONYMOUS_CLASS_CONSTRUCTOR_INVOCATION:
return convertRelevance(baseRelevance + 3);
case CompletionProposal.METHOD_REF:
case CompletionProposal.CONSTRUCTOR_INVOCATION:
case CompletionProposal.METHOD_NAME_REFERENCE:
case CompletionProposal.METHOD_DECLARATION:
case CompletionProposal.ANNOTATION_ATTRIBUTE_REF:
case CompletionProposal.POTENTIAL_METHOD_DECLARATION:
return convertRelevance(baseRelevance + 4);
case CompletionProposal.FIELD_REF:
return convertRelevance(baseRelevance + 5);
case CompletionProposal.LOCAL_VARIABLE_REF:
case CompletionProposal.VARIABLE_DECLARATION:
return convertRelevance(baseRelevance + 6);
case CompletionProposal.PACKAGE_REF://intentional fall-through
default:
return convertRelevance(baseRelevance);
}
}
示例5: isSupportingRequiredProposals
private boolean isSupportingRequiredProposals(CompletionProposal proposal) {
return proposal != null
&& (proposal.getKind() == CompletionProposal.METHOD_REF
|| proposal.getKind() == CompletionProposal.FIELD_REF
|| proposal.getKind() == CompletionProposal.TYPE_REF
|| proposal.getKind() == CompletionProposal.CONSTRUCTOR_INVOCATION || proposal.getKind() == CompletionProposal.ANONYMOUS_CLASS_CONSTRUCTOR_INVOCATION
|| proposal.getKind() == CompletionProposal.ANONYMOUS_CLASS_DECLARATION);
}
示例6: computeRelevance
/**
* Computes the relevance for a given <code>CompletionProposal</code>.
*
* <p>Subclasses may replace, but usually should not need to.
*
* @param proposal the proposal to compute the relevance for
* @return the relevance for <code>proposal</code>
*/
protected int computeRelevance(CompletionProposal proposal) {
final int baseRelevance = proposal.getRelevance() * 16;
switch (proposal.getKind()) {
case CompletionProposal.PACKAGE_REF:
return baseRelevance + 0;
case CompletionProposal.LABEL_REF:
return baseRelevance + 1;
case CompletionProposal.KEYWORD:
return baseRelevance + 2;
case CompletionProposal.TYPE_REF:
case CompletionProposal.ANONYMOUS_CLASS_DECLARATION:
case CompletionProposal.ANONYMOUS_CLASS_CONSTRUCTOR_INVOCATION:
return baseRelevance + 3;
case CompletionProposal.METHOD_REF:
case CompletionProposal.CONSTRUCTOR_INVOCATION:
case CompletionProposal.METHOD_NAME_REFERENCE:
case CompletionProposal.METHOD_DECLARATION:
case CompletionProposal.ANNOTATION_ATTRIBUTE_REF:
return baseRelevance + 4;
case CompletionProposal.POTENTIAL_METHOD_DECLARATION:
return baseRelevance + 4 /* + 99 */;
case CompletionProposal.FIELD_REF:
return baseRelevance + 5;
case CompletionProposal.LOCAL_VARIABLE_REF:
case CompletionProposal.VARIABLE_DECLARATION:
return baseRelevance + 6;
default:
return baseRelevance;
}
}
示例7: getDeclaringType
/**
* Returns the type signature of the declaring type of a <code>CompletionProposal</code>, or
* <code>null</code> for proposals that do not have a declaring type. The return value is
* <em>not</em> <code>null</code> for proposals of the following kinds:
*
* <ul>
* <li>METHOD_DECLARATION
* <li>METHOD_NAME_REFERENCE
* <li>METHOD_REF
* <li>ANNOTATION_ATTRIBUTE_REF
* <li>POTENTIAL_METHOD_DECLARATION
* <li>ANONYMOUS_CLASS_DECLARATION
* <li>FIELD_REF
* <li>PACKAGE_REF (returns the package, but no type)
* <li>TYPE_REF
* </ul>
*
* @param proposal the completion proposal to get the declaring type for
* @return the type signature of the declaring type, or <code>null</code> if there is none
* @see org.eclipse.jdt.core.Signature#toCharArray(char[])
*/
protected final char[] getDeclaringType(CompletionProposal proposal) {
switch (proposal.getKind()) {
case CompletionProposal.METHOD_DECLARATION:
case CompletionProposal.METHOD_NAME_REFERENCE:
case CompletionProposal.JAVADOC_METHOD_REF:
case CompletionProposal.METHOD_REF:
case CompletionProposal.CONSTRUCTOR_INVOCATION:
case CompletionProposal.ANONYMOUS_CLASS_CONSTRUCTOR_INVOCATION:
case CompletionProposal.METHOD_REF_WITH_CASTED_RECEIVER:
case CompletionProposal.ANNOTATION_ATTRIBUTE_REF:
case CompletionProposal.POTENTIAL_METHOD_DECLARATION:
case CompletionProposal.ANONYMOUS_CLASS_DECLARATION:
case CompletionProposal.FIELD_REF:
case CompletionProposal.FIELD_REF_WITH_CASTED_RECEIVER:
case CompletionProposal.JAVADOC_FIELD_REF:
case CompletionProposal.JAVADOC_VALUE_REF:
char[] declaration = proposal.getDeclarationSignature();
// special methods may not have a declaring type: methods defined on arrays etc.
// Currently known: class literals don't have a declaring type - use Object
if (declaration == null) return "java.lang.Object".toCharArray(); // $NON-NLS-1$
return Signature.toCharArray(declaration);
case CompletionProposal.PACKAGE_REF:
return proposal.getDeclarationSignature();
case CompletionProposal.JAVADOC_TYPE_REF:
case CompletionProposal.TYPE_REF:
return Signature.toCharArray(proposal.getSignature());
case CompletionProposal.LOCAL_VARIABLE_REF:
case CompletionProposal.VARIABLE_DECLARATION:
case CompletionProposal.KEYWORD:
case CompletionProposal.LABEL_REF:
case CompletionProposal.JAVADOC_BLOCK_TAG:
case CompletionProposal.JAVADOC_INLINE_TAG:
case CompletionProposal.JAVADOC_PARAM_REF:
return null;
default:
Assert.isTrue(false);
return null;
}
}
示例8: computeRelevance
protected int computeRelevance() {
final int baseRelevance = fProposal.getRelevance() * 16;
switch (fProposal.getKind()) {
case CompletionProposal.PACKAGE_REF:
return baseRelevance + 0;
case CompletionProposal.LABEL_REF:
return baseRelevance + 1;
case CompletionProposal.KEYWORD:
return baseRelevance + 2;
case CompletionProposal.TYPE_REF:
case CompletionProposal.ANONYMOUS_CLASS_DECLARATION:
case CompletionProposal.ANONYMOUS_CLASS_CONSTRUCTOR_INVOCATION:
return baseRelevance + 3;
case CompletionProposal.METHOD_REF:
case CompletionProposal.CONSTRUCTOR_INVOCATION:
case CompletionProposal.METHOD_NAME_REFERENCE:
case CompletionProposal.METHOD_DECLARATION:
case CompletionProposal.ANNOTATION_ATTRIBUTE_REF:
return baseRelevance + 4;
case CompletionProposal.POTENTIAL_METHOD_DECLARATION:
return baseRelevance + 4 /* + 99 */;
case CompletionProposal.FIELD_REF:
return baseRelevance + 5;
case CompletionProposal.LOCAL_VARIABLE_REF:
case CompletionProposal.VARIABLE_DECLARATION:
return baseRelevance + 6;
default:
return baseRelevance;
}
}
示例9: updateDescription
/**
* Updates the description fields of the item.
*
* @param proposal
* @param item
*/
public void updateDescription(CompletionProposal proposal, CompletionItem item) {
switch (proposal.getKind()) {
case CompletionProposal.METHOD_NAME_REFERENCE:
case CompletionProposal.METHOD_REF:
case CompletionProposal.CONSTRUCTOR_INVOCATION:
case CompletionProposal.METHOD_REF_WITH_CASTED_RECEIVER:
case CompletionProposal.POTENTIAL_METHOD_DECLARATION:
if (fContext != null && fContext.isInJavadoc()) {
createJavadocMethodProposalLabel(proposal, item);
break;
}
createMethodProposalLabel(proposal, item);
break;
case CompletionProposal.METHOD_DECLARATION:
createOverrideMethodProposalLabel(proposal, item);
break;
case CompletionProposal.ANONYMOUS_CLASS_DECLARATION:
case CompletionProposal.ANONYMOUS_CLASS_CONSTRUCTOR_INVOCATION:
createAnonymousTypeLabel(proposal, item);
break;
case CompletionProposal.TYPE_REF:
createTypeProposalLabel(proposal, item);
break;
case CompletionProposal.JAVADOC_TYPE_REF:
createJavadocTypeProposalLabel(proposal, item);
break;
case CompletionProposal.JAVADOC_FIELD_REF:
case CompletionProposal.JAVADOC_VALUE_REF:
case CompletionProposal.JAVADOC_BLOCK_TAG:
case CompletionProposal.JAVADOC_INLINE_TAG:
case CompletionProposal.JAVADOC_PARAM_REF:
createJavadocSimpleProposalLabel(proposal, item);
break;
case CompletionProposal.JAVADOC_METHOD_REF:
createJavadocMethodProposalLabel(proposal, item);
break;
case CompletionProposal.PACKAGE_REF:
case CompletionProposal.MODULE_DECLARATION:
case CompletionProposal.MODULE_REF:
createPackageProposalLabel(proposal, item);
break;
case CompletionProposal.ANNOTATION_ATTRIBUTE_REF:
case CompletionProposal.FIELD_REF:
case CompletionProposal.FIELD_REF_WITH_CASTED_RECEIVER:
createLabelWithTypeAndDeclaration(proposal, item);
break;
case CompletionProposal.LOCAL_VARIABLE_REF:
case CompletionProposal.VARIABLE_DECLARATION:
createSimpleLabelWithType(proposal, item);
break;
case CompletionProposal.KEYWORD:
case CompletionProposal.LABEL_REF:
item.setLabel(createSimpleLabel(proposal).toString());
break;
default:
JavaLanguageServerPlugin.logInfo(new String(proposal.getName()) + " is of type " + getProposal(proposal));
Assert.isTrue(false);
}
}
示例10: mapKind
private CompletionItemKind mapKind(final int kind) {
switch (kind) {
case CompletionProposal.ANONYMOUS_CLASS_CONSTRUCTOR_INVOCATION:
case CompletionProposal.CONSTRUCTOR_INVOCATION:
return CompletionItemKind.Constructor;
case CompletionProposal.ANONYMOUS_CLASS_DECLARATION:
case CompletionProposal.TYPE_REF:
return CompletionItemKind.Class;
case CompletionProposal.FIELD_IMPORT:
case CompletionProposal.METHOD_IMPORT:
case CompletionProposal.METHOD_NAME_REFERENCE:
case CompletionProposal.PACKAGE_REF:
case CompletionProposal.TYPE_IMPORT:
return CompletionItemKind.Module;
case CompletionProposal.FIELD_REF:
case CompletionProposal.FIELD_REF_WITH_CASTED_RECEIVER:
return CompletionItemKind.Field;
case CompletionProposal.KEYWORD:
return CompletionItemKind.Keyword;
case CompletionProposal.LABEL_REF:
return CompletionItemKind.Reference;
case CompletionProposal.LOCAL_VARIABLE_REF:
case CompletionProposal.VARIABLE_DECLARATION:
return CompletionItemKind.Variable;
case CompletionProposal.METHOD_DECLARATION:
case CompletionProposal.METHOD_REF:
case CompletionProposal.METHOD_REF_WITH_CASTED_RECEIVER:
case CompletionProposal.POTENTIAL_METHOD_DECLARATION:
return CompletionItemKind.Function;
//text
case CompletionProposal.ANNOTATION_ATTRIBUTE_REF:
case CompletionProposal.JAVADOC_BLOCK_TAG:
case CompletionProposal.JAVADOC_FIELD_REF:
case CompletionProposal.JAVADOC_INLINE_TAG:
case CompletionProposal.JAVADOC_METHOD_REF:
case CompletionProposal.JAVADOC_PARAM_REF:
case CompletionProposal.JAVADOC_TYPE_REF:
case CompletionProposal.JAVADOC_VALUE_REF:
default:
return CompletionItemKind.Text;
}
}
示例11: updateReplacement
/**
* Updates the replacement and any additional replacement for the given item.
*
* @param proposal
* @param item
* @param trigger
*/
public void updateReplacement(CompletionProposal proposal, CompletionItem item, char trigger) {
// reset importRewrite
this.importRewrite = TypeProposalUtils.createImportRewrite(compilationUnit);
List<org.eclipse.lsp4j.TextEdit> additionalTextEdits = new ArrayList<>();
StringBuilder completionBuffer = new StringBuilder();
Range range = null;
if (isSupportingRequiredProposals(proposal)) {
CompletionProposal[] requiredProposals= proposal.getRequiredProposals();
if (requiredProposals != null) {
for (CompletionProposal requiredProposal : requiredProposals) {
switch(requiredProposal.getKind()) {
case CompletionProposal.TYPE_IMPORT:
case CompletionProposal.METHOD_IMPORT:
case CompletionProposal.FIELD_IMPORT:
appendImportProposal(completionBuffer, requiredProposal, proposal.getKind());
break;
case CompletionProposal.TYPE_REF:
org.eclipse.lsp4j.TextEdit edit = toRequiredTypeEdit(requiredProposal, trigger, proposal.canUseDiamond(context));
if (proposal.getKind() == CompletionProposal.CONSTRUCTOR_INVOCATION || proposal.getKind() == CompletionProposal.ANONYMOUS_CLASS_CONSTRUCTOR_INVOCATION
|| proposal.getKind() == CompletionProposal.ANONYMOUS_CLASS_DECLARATION) {
completionBuffer.append(edit.getNewText());
range = edit.getRange();
} else {
additionalTextEdits.add(edit);
}
break;
default:
/*
* In 3.3 we only support the above required proposals, see
* CompletionProposal#getRequiredProposals()
*/
Assert.isTrue(false);
}
}
}
}
if (range == null) {
range = toReplacementRange(proposal);
}
if(proposal.getKind() == CompletionProposal.METHOD_DECLARATION){
appendMethodOverrideReplacement(completionBuffer, proposal);
} else if (proposal.getKind() == CompletionProposal.POTENTIAL_METHOD_DECLARATION && proposal instanceof GetterSetterCompletionProposal) {
appendMethodPotentialReplacement(completionBuffer, (GetterSetterCompletionProposal) proposal);
} else if (proposal.getKind() == CompletionProposal.ANONYMOUS_CLASS_CONSTRUCTOR_INVOCATION || proposal.getKind() == CompletionProposal.ANONYMOUS_CLASS_DECLARATION) {
appendAnonymousClass(completionBuffer, proposal, range);
} else {
appendReplacementString(completionBuffer, proposal);
}
//select insertTextFormat.
if( client.isCompletionSnippetsSupported()){
item.setInsertTextFormat(InsertTextFormat.Snippet);
}else{
item.setInsertTextFormat(InsertTextFormat.PlainText);
}
String text = completionBuffer.toString();
if(range != null){
item.setTextEdit(new org.eclipse.lsp4j.TextEdit(range, text));
}else{
// fallback
item.setInsertText(text);
}
addImports(additionalTextEdits);
if(!additionalTextEdits.isEmpty()){
item.setAdditionalTextEdits(additionalTextEdits);
}
}
示例12: createStyledLabel
/**
* Creates a display label with styles for a given <code>CompletionProposal</code>.
*
* @param proposal the completion proposal to create the display label for
* @return the display label for <code>proposal</code>
* @since 3.4
*/
public StyledString createStyledLabel(CompletionProposal proposal) {
switch (proposal.getKind()) {
case CompletionProposal.METHOD_NAME_REFERENCE:
case CompletionProposal.METHOD_REF:
case CompletionProposal.CONSTRUCTOR_INVOCATION:
case CompletionProposal.METHOD_REF_WITH_CASTED_RECEIVER:
case CompletionProposal.POTENTIAL_METHOD_DECLARATION:
if (fContext != null && fContext.isInJavadoc())
return createJavadocMethodProposalLabel(proposal);
return createMethodProposalLabel(proposal);
case CompletionProposal.METHOD_DECLARATION:
return createOverrideMethodProposalLabel(proposal);
case CompletionProposal.ANONYMOUS_CLASS_DECLARATION:
case CompletionProposal.ANONYMOUS_CLASS_CONSTRUCTOR_INVOCATION:
return createAnonymousTypeLabel(proposal);
case CompletionProposal.TYPE_REF:
return createTypeProposalLabel(proposal);
case CompletionProposal.JAVADOC_TYPE_REF:
return createJavadocTypeProposalLabel(proposal);
case CompletionProposal.JAVADOC_FIELD_REF:
case CompletionProposal.JAVADOC_VALUE_REF:
case CompletionProposal.JAVADOC_BLOCK_TAG:
case CompletionProposal.JAVADOC_INLINE_TAG:
case CompletionProposal.JAVADOC_PARAM_REF:
return createJavadocSimpleProposalLabel(proposal);
case CompletionProposal.JAVADOC_METHOD_REF:
return createJavadocMethodProposalLabel(proposal);
case CompletionProposal.PACKAGE_REF:
return createPackageProposalLabel(proposal);
case CompletionProposal.ANNOTATION_ATTRIBUTE_REF:
case CompletionProposal.FIELD_REF:
case CompletionProposal.FIELD_REF_WITH_CASTED_RECEIVER:
return createLabelWithTypeAndDeclaration(proposal);
case CompletionProposal.LOCAL_VARIABLE_REF:
case CompletionProposal.VARIABLE_DECLARATION:
return createSimpleLabelWithType(proposal);
case CompletionProposal.KEYWORD:
case CompletionProposal.LABEL_REF:
return createSimpleLabel(proposal);
default:
Assert.isTrue(false);
return null;
}
}
示例13: createImageDescriptor
/**
* Creates and returns a decorated image descriptor for a completion proposal.
*
* @param proposal the proposal for which to create an image descriptor
* @return the created image descriptor, or <code>null</code> if no image is available
*/
public ImageDescriptor createImageDescriptor(CompletionProposal proposal) {
final int flags = proposal.getFlags();
ImageDescriptor descriptor;
switch (proposal.getKind()) {
case CompletionProposal.METHOD_DECLARATION:
case CompletionProposal.METHOD_NAME_REFERENCE:
case CompletionProposal.METHOD_REF:
case CompletionProposal.CONSTRUCTOR_INVOCATION:
case CompletionProposal.METHOD_REF_WITH_CASTED_RECEIVER:
case CompletionProposal.ANNOTATION_ATTRIBUTE_REF:
case CompletionProposal.POTENTIAL_METHOD_DECLARATION:
case CompletionProposal.ANONYMOUS_CLASS_DECLARATION:
case CompletionProposal.ANONYMOUS_CLASS_CONSTRUCTOR_INVOCATION:
descriptor = JavaElementImageProvider.getMethodImageDescriptor(false, flags);
break;
case CompletionProposal.TYPE_REF:
switch (Signature.getTypeSignatureKind(proposal.getSignature())) {
case Signature.CLASS_TYPE_SIGNATURE:
descriptor =
JavaElementImageProvider.getTypeImageDescriptor(false, false, flags, false);
break;
case Signature.TYPE_VARIABLE_SIGNATURE:
descriptor = JavaPluginImages.DESC_OBJS_TYPEVARIABLE;
break;
default:
descriptor = null;
}
break;
case CompletionProposal.FIELD_REF:
case CompletionProposal.FIELD_REF_WITH_CASTED_RECEIVER:
descriptor = JavaElementImageProvider.getFieldImageDescriptor(false, flags);
break;
case CompletionProposal.LOCAL_VARIABLE_REF:
case CompletionProposal.VARIABLE_DECLARATION:
descriptor = JavaPluginImages.DESC_OBJS_LOCAL_VARIABLE;
break;
case CompletionProposal.PACKAGE_REF:
descriptor = JavaPluginImages.DESC_OBJS_PACKAGE;
break;
case CompletionProposal.KEYWORD:
case CompletionProposal.LABEL_REF:
descriptor = null;
break;
case CompletionProposal.JAVADOC_METHOD_REF:
case CompletionProposal.JAVADOC_TYPE_REF:
case CompletionProposal.JAVADOC_FIELD_REF:
case CompletionProposal.JAVADOC_VALUE_REF:
case CompletionProposal.JAVADOC_BLOCK_TAG:
case CompletionProposal.JAVADOC_INLINE_TAG:
case CompletionProposal.JAVADOC_PARAM_REF:
descriptor = JavaPluginImages.DESC_OBJS_JAVADOCTAG;
break;
default:
descriptor = null;
Assert.isTrue(false);
}
if (descriptor == null) return null;
return decorateImageDescriptor(descriptor, proposal);
}
示例14: createJavaCompletionProposal
/**
* Creates a new java completion proposal from a core proposal. This may involve computing the
* display label and setting up some context.
*
* <p>This method is called for every proposal that will be displayed to the user, which may be
* hundreds. Implementations should therefore defer as much work as possible: Labels should be
* computed lazily to leverage virtual table usage, and any information only needed when
* <em>applying</em> a proposal should not be computed yet.
*
* <p>Implementations may return <code>null</code> if a proposal should not be included in the
* list presented to the user.
*
* <p>Subclasses may extend or replace this method.
*
* @param proposal the core completion proposal to create a UI proposal for
* @return the created java completion proposal, or <code>null</code> if no proposal should be
* displayed
*/
protected IJavaCompletionProposal createJavaCompletionProposal(CompletionProposal proposal) {
switch (proposal.getKind()) {
case CompletionProposal.KEYWORD:
return createKeywordProposal(proposal);
case CompletionProposal.PACKAGE_REF:
return createPackageProposal(proposal);
case CompletionProposal.TYPE_REF:
return createTypeProposal(proposal);
case CompletionProposal.JAVADOC_TYPE_REF:
return createJavadocLinkTypeProposal(proposal);
case CompletionProposal.FIELD_REF:
case CompletionProposal.JAVADOC_FIELD_REF:
case CompletionProposal.JAVADOC_VALUE_REF:
return createFieldProposal(proposal);
case CompletionProposal.FIELD_REF_WITH_CASTED_RECEIVER:
return createFieldWithCastedReceiverProposal(proposal);
case CompletionProposal.METHOD_REF:
case CompletionProposal.CONSTRUCTOR_INVOCATION:
case CompletionProposal.METHOD_REF_WITH_CASTED_RECEIVER:
case CompletionProposal.METHOD_NAME_REFERENCE:
case CompletionProposal.JAVADOC_METHOD_REF:
return createMethodReferenceProposal(proposal);
case CompletionProposal.METHOD_DECLARATION:
return createMethodDeclarationProposal(proposal);
case CompletionProposal.ANONYMOUS_CLASS_CONSTRUCTOR_INVOCATION:
return createAnonymousTypeProposal(proposal, getInvocationContext());
case CompletionProposal.ANONYMOUS_CLASS_DECLARATION:
return createAnonymousTypeProposal(proposal, null);
case CompletionProposal.LABEL_REF:
return createLabelProposal(proposal);
case CompletionProposal.LOCAL_VARIABLE_REF:
case CompletionProposal.VARIABLE_DECLARATION:
return createLocalVariableProposal(proposal);
case CompletionProposal.ANNOTATION_ATTRIBUTE_REF:
return createAnnotationAttributeReferenceProposal(proposal);
case CompletionProposal.JAVADOC_BLOCK_TAG:
case CompletionProposal.JAVADOC_PARAM_REF:
return createJavadocSimpleProposal(proposal);
case CompletionProposal.JAVADOC_INLINE_TAG:
return createJavadocInlineTagProposal(proposal);
case CompletionProposal.POTENTIAL_METHOD_DECLARATION:
default:
return null;
}
}