mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-09-10 12:03:16 +02:00
Removed duplicates from list of DOM completions.
This commit is contained in:
parent
6133753311
commit
8f2104f4f5
2 changed files with 18 additions and 6 deletions
|
@ -80,7 +80,6 @@ public class CCompletionProcessor2 implements IContentAssistProcessor {
|
||||||
ICompletionContributor contributor = (ICompletionContributor)contribObject;
|
ICompletionContributor contributor = (ICompletionContributor)contribObject;
|
||||||
contributor.contributeCompletionProposals(viewer, offset, completionNode, proposals);
|
contributor.contributeCompletionProposals(viewer, offset, completionNode, proposals);
|
||||||
}
|
}
|
||||||
int x = 5;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
long propTime = System.currentTimeMillis();
|
long propTime = System.currentTimeMillis();
|
||||||
|
|
|
@ -7,6 +7,8 @@
|
||||||
**********************************************************************/
|
**********************************************************************/
|
||||||
package org.eclipse.cdt.internal.ui.text.contentassist;
|
package org.eclipse.cdt.internal.ui.text.contentassist;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Iterator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import org.eclipse.cdt.core.dom.ast.ASTCompletionNode;
|
import org.eclipse.cdt.core.dom.ast.ASTCompletionNode;
|
||||||
|
@ -35,23 +37,34 @@ public class DOMCompletionContributor implements ICompletionContributor {
|
||||||
ASTCompletionNode completionNode,
|
ASTCompletionNode completionNode,
|
||||||
List proposals) {
|
List proposals) {
|
||||||
if (completionNode != null) {
|
if (completionNode != null) {
|
||||||
|
List allBindings = new ArrayList();
|
||||||
IASTName[] names = completionNode.getNames();
|
IASTName[] names = completionNode.getNames();
|
||||||
for (int i = 0; i < names.length; ++i) {
|
for (int i = 0; i < names.length; ++i) {
|
||||||
IBinding[] bindings = names[i].resolvePrefix();
|
IBinding[] bindings = names[i].resolvePrefix();
|
||||||
for (int j = 0; j < bindings.length; ++j)
|
if (bindings != null)
|
||||||
handleBinding(names[i], bindings[j], completionNode, offset, viewer, proposals);
|
for (int j = 0; j < bindings.length; ++j) {
|
||||||
|
IBinding binding = bindings[j];
|
||||||
|
if (!allBindings.contains(binding))
|
||||||
|
allBindings.add(binding);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Iterator iBinding = allBindings.iterator();
|
||||||
|
while (iBinding.hasNext()) {
|
||||||
|
IBinding binding = (IBinding)iBinding.next();
|
||||||
|
handleBinding(binding, completionNode, offset, viewer, proposals);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void handleBinding(IASTName name, IBinding binding, ASTCompletionNode completionNode, int offset, ITextViewer viewer, List proposals) {
|
private void handleBinding(IBinding binding, ASTCompletionNode completionNode, int offset, ITextViewer viewer, List proposals) {
|
||||||
if (binding instanceof IFunction)
|
if (binding instanceof IFunction)
|
||||||
handleFunction(name, (IFunction)binding, completionNode, offset, viewer, proposals);
|
handleFunction((IFunction)binding, completionNode, offset, viewer, proposals);
|
||||||
else
|
else
|
||||||
proposals.add(createProposal(binding.getName(), binding.getName(), getImage(binding), completionNode, offset, viewer));
|
proposals.add(createProposal(binding.getName(), binding.getName(), getImage(binding), completionNode, offset, viewer));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void handleFunction(IASTName name, IFunction function, ASTCompletionNode completionNode, int offset, ITextViewer viewer, List proposals) {
|
private void handleFunction(IFunction function, ASTCompletionNode completionNode, int offset, ITextViewer viewer, List proposals) {
|
||||||
Image image = getImage(CElementImageProvider.getFunctionImageDescriptor());
|
Image image = getImage(CElementImageProvider.getFunctionImageDescriptor());
|
||||||
|
|
||||||
StringBuffer repStringBuff = new StringBuffer();
|
StringBuffer repStringBuff = new StringBuffer();
|
||||||
|
|
Loading…
Add table
Reference in a new issue