Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/text/java/JavaTypeCompletionProposalComputer.java')
-rw-r--r--bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/text/java/JavaTypeCompletionProposalComputer.java190
1 files changed, 0 insertions, 190 deletions
diff --git a/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/text/java/JavaTypeCompletionProposalComputer.java b/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/text/java/JavaTypeCompletionProposalComputer.java
deleted file mode 100644
index 83351654..00000000
--- a/bundles/org.eclipse.wst.jsdt.ui/src/org/eclipse/wst/jsdt/internal/ui/text/java/JavaTypeCompletionProposalComputer.java
+++ /dev/null
@@ -1,190 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2009 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.wst.jsdt.internal.ui.text.java;
-
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.wst.jsdt.core.CompletionProposal;
-import org.eclipse.wst.jsdt.core.IJavaScriptElement;
-import org.eclipse.wst.jsdt.core.IJavaScriptProject;
-import org.eclipse.wst.jsdt.core.IType;
-import org.eclipse.wst.jsdt.core.JavaScriptCore;
-import org.eclipse.wst.jsdt.core.JavaScriptModelException;
-import org.eclipse.wst.jsdt.core.Signature;
-import org.eclipse.wst.jsdt.internal.ui.JavaScriptPlugin;
-import org.eclipse.wst.jsdt.internal.ui.text.JavaHeuristicScanner;
-import org.eclipse.wst.jsdt.internal.ui.text.Symbols;
-import org.eclipse.wst.jsdt.ui.text.java.CompletionProposalCollector;
-import org.eclipse.wst.jsdt.ui.text.java.ContentAssistInvocationContext;
-import org.eclipse.wst.jsdt.ui.text.java.IJavaCompletionProposal;
-import org.eclipse.wst.jsdt.ui.text.java.JavaContentAssistInvocationContext;
-
-/**
- *
- *
- */
-public class JavaTypeCompletionProposalComputer extends JavaCompletionProposalComputer {
- /*
- * @see org.eclipse.wst.jsdt.internal.ui.text.java.JavaCompletionProposalComputer#createCollector(org.eclipse.wst.jsdt.ui.text.java.JavaContentAssistInvocationContext)
- */
- protected CompletionProposalCollector createCollector(JavaContentAssistInvocationContext context) {
- CompletionProposalCollector collector= super.createCollector(context);
- collector.setIgnored(CompletionProposal.ANONYMOUS_CLASS_DECLARATION, true);
- collector.setIgnored(CompletionProposal.FIELD_REF, true);
- collector.setIgnored(CompletionProposal.KEYWORD, true);
- collector.setIgnored(CompletionProposal.LABEL_REF, true);
- collector.setIgnored(CompletionProposal.LOCAL_VARIABLE_REF, true);
- collector.setIgnored(CompletionProposal.METHOD_DECLARATION, true);
- collector.setIgnored(CompletionProposal.METHOD_NAME_REFERENCE, true);
- collector.setIgnored(CompletionProposal.METHOD_REF, true);
- collector.setIgnored(CompletionProposal.PACKAGE_REF, true);
- collector.setIgnored(CompletionProposal.POTENTIAL_METHOD_DECLARATION, true);
- collector.setIgnored(CompletionProposal.VARIABLE_DECLARATION, true);
-
- collector.setIgnored(CompletionProposal.JSDOC_BLOCK_TAG, true);
- collector.setIgnored(CompletionProposal.JSDOC_FIELD_REF, true);
- collector.setIgnored(CompletionProposal.JSDOC_INLINE_TAG, true);
- collector.setIgnored(CompletionProposal.JSDOC_METHOD_REF, true);
- collector.setIgnored(CompletionProposal.JSDOC_PARAM_REF, true);
- collector.setIgnored(CompletionProposal.JSDOC_TYPE_REF, true);
-
- collector.setIgnored(CompletionProposal.TYPE_REF, false);
- return collector;
- }
-
- /*
- * @see org.eclipse.wst.jsdt.internal.ui.text.java.JavaCompletionProposalComputer#computeCompletionProposals(org.eclipse.jface.text.contentassist.TextContentAssistInvocationContext, org.eclipse.core.runtime.IProgressMonitor)
- */
- public List computeCompletionProposals(ContentAssistInvocationContext context, IProgressMonitor monitor) {
- List types= super.computeCompletionProposals(context, monitor);
- if (context instanceof JavaContentAssistInvocationContext) {
- JavaContentAssistInvocationContext javaContext= (JavaContentAssistInvocationContext) context;
- try {
- if (types.size() > 0 && context.computeIdentifierPrefix().length() == 0) {
- IType expectedType= javaContext.getExpectedType();
- if (expectedType != null) {
- // empty prefix completion - insert LRU types if known, but prune if they already occur in the core list
-
- // compute minmimum relevance and already proposed list
- int relevance= Integer.MAX_VALUE;
- Set proposed= new HashSet();
- for (Iterator it= types.iterator(); it.hasNext();) {
- AbstractJavaCompletionProposal p= (AbstractJavaCompletionProposal) it.next();
- IJavaScriptElement element= p.getJavaElement();
- if (element instanceof IType)
- proposed.add(((IType) element).getFullyQualifiedName());
- relevance= Math.min(relevance, p.getRelevance());
- }
-
- // insert history types
- List history= JavaScriptPlugin.getDefault().getContentAssistHistory().getHistory(expectedType.getFullyQualifiedName()).getTypes();
- relevance-= history.size() + 1;
- for (Iterator it= history.iterator(); it.hasNext();) {
- String type= (String) it.next();
- if (proposed.contains(type))
- continue;
-
- IJavaCompletionProposal proposal= createTypeProposal(relevance, type, javaContext);
-
- if (proposal != null)
- types.add(proposal);
- relevance++;
- }
- }
- }
- } catch (BadLocationException x) {
- // log & ignore
- JavaScriptPlugin.log(x);
- } catch (JavaScriptModelException x) {
- // log & ignore
- JavaScriptPlugin.log(x);
- }
- }
- return types;
- }
-
- private IJavaCompletionProposal createTypeProposal(int relevance, String fullyQualifiedType, JavaContentAssistInvocationContext context) throws JavaScriptModelException {
- IType type= context.getCompilationUnit().getJavaScriptProject().findType(fullyQualifiedType);
- if (type == null)
- return null;
-
- CompletionProposal proposal= CompletionProposal.create(CompletionProposal.TYPE_REF, context.getInvocationOffset());
- proposal.setCompletion(fullyQualifiedType.toCharArray());
- proposal.setDeclarationSignature(type.getPackageFragment().getElementName().toCharArray());
- proposal.setFlags(type.getFlags());
- proposal.setRelevance(relevance);
- proposal.setReplaceRange(context.getInvocationOffset(), context.getInvocationOffset());
- proposal.setSignature(Signature.createTypeSignature(fullyQualifiedType, true).toCharArray());
-
- if (shouldProposeGenerics(context.getProject()))
- return new LazyGenericTypeProposal(proposal, context);
- else
- return new LazyJavaTypeCompletionProposal(proposal, context);
- }
-
- /**
- * Returns <code>true</code> if generic proposals should be allowed,
- * <code>false</code> if not. Note that even though code (in a library)
- * may be referenced that uses generics, it is still possible that the
- * current source does not allow generics.
- *
- * @param project the Java project
- * @return <code>true</code> if the generic proposals should be allowed,
- * <code>false</code> if not
- */
- private final boolean shouldProposeGenerics(IJavaScriptProject project) {
- String sourceVersion;
- if (project != null)
- sourceVersion= project.getOption(JavaScriptCore.COMPILER_SOURCE, true);
- else
- sourceVersion= JavaScriptCore.getOption(JavaScriptCore.COMPILER_SOURCE);
-
- return sourceVersion != null && JavaScriptCore.VERSION_1_5.compareTo(sourceVersion) <= 0;
- }
-
- protected int guessContextInformationPosition(ContentAssistInvocationContext context) {
- final int contextPosition= context.getInvocationOffset();
-
- IDocument document= context.getDocument();
- JavaHeuristicScanner scanner= new JavaHeuristicScanner(document);
- int bound= Math.max(-1, contextPosition - 200);
-
- // try the innermost scope of angle brackets that looks like a generic type argument list
- try {
- int pos= contextPosition - 1;
- do {
- int angle= scanner.findOpeningPeer(pos, bound, '<', '>');
- if (angle == JavaHeuristicScanner.NOT_FOUND)
- break;
- int token= scanner.previousToken(angle - 1, bound);
- // next token must be a method name that is a generic type
- if (token == Symbols.TokenIDENT) {
- int off= scanner.getPosition() + 1;
- int end= angle;
- String ident= document.get(off, end - off).trim();
- if (JavaHeuristicScanner.isGenericStarter(ident))
- return angle + 1;
- }
- pos= angle - 1;
- } while (true);
- } catch (BadLocationException x) {
- }
-
- return super.guessContextInformationPosition(context);
- }
-
-}

Back to the top