package org.pdtextensions.core.ui.util;
import java.util.ArrayList;
import java.util.List;
import org.eclipse.dltk.core.IModelElement;
import org.eclipse.dltk.core.IType;
import org.eclipse.dltk.core.index2.search.ISearchEngine.MatchRule;
import org.eclipse.dltk.core.search.IDLTKSearchScope;
import org.eclipse.dltk.core.search.SearchEngine;
import org.eclipse.jface.fieldassist.IContentProposal;
import org.eclipse.jface.fieldassist.IContentProposalProvider;
import org.eclipse.php.core.compiler.PHPFlags;
import org.eclipse.php.internal.core.model.PhpModelAccess;
@SuppressWarnings("restriction")
public class PHPContentProposalProvider implements IContentProposalProvider {
private IModelElement element;
public PHPContentProposalProvider(IModelElement element) {
this.element = element;
}
@Override
public IContentProposal[] getProposals(String contents, int position) {
List<PHPTypeContentProposal> props = new ArrayList<PHPTypeContentProposal>();
IDLTKSearchScope scope = SearchEngine.createSearchScope(element);
@SuppressWarnings("restriction")
IType[] types = PhpModelAccess.getDefault().findTypes(contents, MatchRule.PREFIX,
0, PHPFlags.AccNameSpace | PHPFlags.AccInterface, scope, null);
for (IType type : types) {
props.add(new PHPTypeContentProposal(type.getFullyQualifiedName().replace('$', '\\'), type));
}
return props.toArray(new PHPTypeContentProposal[props.size()]);
}
}