本文整理汇总了Java中org.eclipse.jdt.core.ICompilationUnit.codeComplete方法的典型用法代码示例。如果您正苦于以下问题:Java ICompilationUnit.codeComplete方法的具体用法?Java ICompilationUnit.codeComplete怎么用?Java ICompilationUnit.codeComplete使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.eclipse.jdt.core.ICompilationUnit
的用法示例。
在下文中一共展示了ICompilationUnit.codeComplete方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: complete
import org.eclipse.jdt.core.ICompilationUnit; //导入方法依赖的package包/类
private void complete(String projectName, String packageName, String unitName, String completeAt, String completeBehind, int[] ignoredKinds, int warmupCount,
int iterationCount) throws CoreException {
AbstractJavaModelTests.waitUntilIndexesReady();
TestCompletionRequestor requestor = new TestCompletionRequestor();
if (ignoredKinds != null) {
for (int i = 0; i < ignoredKinds.length; i++) {
requestor.setIgnored(ignoredKinds[i], true);
}
}
ICompilationUnit unit = getCompilationUnit(projectName, packageName, unitName);
String str = unit.getSource();
int completionIndex = str.indexOf(completeAt) + completeBehind.length();
if (DEBUG)
System.out.print("Perform code assist inside " + unitName + "...");
for (int j = 0; j < iterationCount; j++) {
unit.codeComplete(completionIndex, requestor);
}
if (DEBUG)
System.out.println("done!");
}
示例2: process
import org.eclipse.jdt.core.ICompilationUnit; //导入方法依赖的package包/类
private SimilarElement[] process(ICompilationUnit cu, int pos) throws JavaModelException {
try {
cu.codeComplete(pos, this);
processKeywords();
return fResult.toArray(new SimilarElement[fResult.size()]);
} finally {
fResult.clear();
}
}
示例3: signatureHelp
import org.eclipse.jdt.core.ICompilationUnit; //导入方法依赖的package包/类
public SignatureHelp signatureHelp(TextDocumentPositionParams position, IProgressMonitor monitor) {
SignatureHelp help = new SignatureHelp();
if (!preferenceManager.getPreferences(null).isSignatureHelpEnabled()) {
return help;
}
try {
ICompilationUnit unit = JDTUtils.resolveCompilationUnit(position.getTextDocument().getUri());
final int offset = JsonRpcHelpers.toOffset(unit.getBuffer(), position.getPosition().getLine(), position.getPosition().getCharacter());
int[] contextInfomation = getContextInfomation(unit.getBuffer(), offset);
if (contextInfomation[0] == -1) {
return help;
}
SignatureHelpRequestor collector = new SignatureHelpRequestor(unit, contextInfomation[0] + 1);
if (offset > -1 && !monitor.isCanceled()) {
unit.codeComplete(contextInfomation[0] + 1, collector, monitor);
help = collector.getSignatureHelp(monitor);
if (help != null) {
int currentParameter = contextInfomation[1];
List<SignatureInformation> infos = help.getSignatures();
for (int i = 0; i < infos.size(); i++) {
if (infos.get(i).getParameters().size() >= currentParameter + 1) {
help.setActiveSignature(i);
help.setActiveParameter(currentParameter);
break;
}
}
}
}
} catch (CoreException ex) {
JavaLanguageServerPlugin.logException("Find signatureHelp failure ", ex);
}
return help;
}
示例4: getStaticImportFavorites
import org.eclipse.jdt.core.ICompilationUnit; //导入方法依赖的package包/类
public static String[] getStaticImportFavorites(ICompilationUnit cu, final String elementName, boolean isMethod, String[] favorites) throws JavaModelException {
StringBuffer dummyCU= new StringBuffer();
String packName= cu.getParent().getElementName();
IType type= cu.findPrimaryType();
if (type == null) {
return new String[0];
}
if (packName.length() > 0) {
dummyCU.append("package ").append(packName).append(';'); //$NON-NLS-1$
}
dummyCU.append("public class ").append(type.getElementName()).append("{\n static {\n").append(elementName); // static initializer //$NON-NLS-1$//$NON-NLS-2$
int offset= dummyCU.length();
dummyCU.append("\n}\n }"); //$NON-NLS-1$
ICompilationUnit newCU= null;
try {
newCU= cu.getWorkingCopy(null);
newCU.getBuffer().setContents(dummyCU.toString());
final HashSet<String> result= new HashSet<>();
CompletionRequestor requestor= new CompletionRequestor(true) {
@Override
public void accept(CompletionProposal proposal) {
if (elementName.equals(new String(proposal.getName()))) {
CompletionProposal[] requiredProposals= proposal.getRequiredProposals();
for (int i= 0; i < requiredProposals.length; i++) {
CompletionProposal curr= requiredProposals[i];
if (curr.getKind() == CompletionProposal.METHOD_IMPORT || curr.getKind() == CompletionProposal.FIELD_IMPORT) {
result.add(JavaModelUtil.concatenateName(Signature.toCharArray(curr.getDeclarationSignature()), curr.getName()));
}
}
}
}
};
if (isMethod) {
requestor.setIgnored(CompletionProposal.METHOD_REF, false);
requestor.setAllowsRequiredProposals(CompletionProposal.METHOD_REF, CompletionProposal.METHOD_IMPORT, true);
} else {
requestor.setIgnored(CompletionProposal.FIELD_REF, false);
requestor.setAllowsRequiredProposals(CompletionProposal.FIELD_REF, CompletionProposal.FIELD_IMPORT, true);
}
requestor.setFavoriteReferences(favorites);
newCU.codeComplete(offset, requestor);
return result.toArray(new String[result.size()]);
} finally {
if (newCU != null) {
newCU.discardWorkingCopy();
}
}
}
示例5: computeContentAssist
import org.eclipse.jdt.core.ICompilationUnit; //导入方法依赖的package包/类
private List<CompletionItem> computeContentAssist(ICompilationUnit unit, int line, int column, IProgressMonitor monitor) throws JavaModelException {
CompletionResponses.clear();
if (unit == null) {
return Collections.emptyList();
}
List<CompletionItem> proposals = new ArrayList<>();
final int offset = JsonRpcHelpers.toOffset(unit.getBuffer(), line, column);
CompletionProposalRequestor collector = new CompletionProposalRequestor(unit, offset);
// Allow completions for unresolved types - since 3.3
collector.setAllowsRequiredProposals(CompletionProposal.FIELD_REF, CompletionProposal.TYPE_REF, true);
collector.setAllowsRequiredProposals(CompletionProposal.FIELD_REF, CompletionProposal.TYPE_IMPORT, true);
collector.setAllowsRequiredProposals(CompletionProposal.FIELD_REF, CompletionProposal.FIELD_IMPORT, true);
collector.setAllowsRequiredProposals(CompletionProposal.METHOD_REF, CompletionProposal.TYPE_REF, true);
collector.setAllowsRequiredProposals(CompletionProposal.METHOD_REF, CompletionProposal.TYPE_IMPORT, true);
collector.setAllowsRequiredProposals(CompletionProposal.METHOD_REF, CompletionProposal.METHOD_IMPORT, true);
collector.setAllowsRequiredProposals(CompletionProposal.CONSTRUCTOR_INVOCATION, CompletionProposal.TYPE_REF, true);
collector.setAllowsRequiredProposals(CompletionProposal.ANONYMOUS_CLASS_CONSTRUCTOR_INVOCATION, CompletionProposal.TYPE_REF, true);
collector.setAllowsRequiredProposals(CompletionProposal.ANONYMOUS_CLASS_DECLARATION, CompletionProposal.TYPE_REF, true);
collector.setAllowsRequiredProposals(CompletionProposal.TYPE_REF, CompletionProposal.TYPE_REF, true);
if (offset >-1 && !monitor.isCanceled()) {
IBuffer buffer = unit.getBuffer();
if (buffer != null && buffer.getLength() >= offset) {
IProgressMonitor subMonitor = new ProgressMonitorWrapper(monitor) {
private long timeLimit;
private static final long TIMEOUT = 5000;
@Override
public void beginTask(String name, int totalWork) {
timeLimit = System.currentTimeMillis() + TIMEOUT;
}
@Override
public boolean isCanceled() {
return super.isCanceled() || timeLimit <= System.currentTimeMillis();
}
};
try {
unit.codeComplete(offset, collector, subMonitor);
proposals.addAll(collector.getCompletionItems());
} catch (OperationCanceledException e) {
monitor.setCanceled(true);
}
}
}
return proposals;
}