1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-04-29 19:45:01 +02:00

Collapse variants of the same include file into a single node.

This commit is contained in:
Sergey Prigogin 2011-10-01 19:14:27 -07:00
parent 5f065af0d8
commit 484ec88e27
2 changed files with 9 additions and 3 deletions

View file

@ -16,6 +16,7 @@ import junit.framework.Test;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
import org.eclipse.swt.widgets.Tree;
import org.eclipse.swt.widgets.TreeItem;
import org.eclipse.cdt.core.CCorePlugin;
import org.eclipse.cdt.core.dom.IPDOMManager;
@ -37,6 +38,7 @@ public class BasicIncludeBrowserTest extends IncludeBrowserBaseTest {
// // source
// #include "user.h"
// #include <system.h>
// #include "user.h"
public void testSimpleInclusion() throws Exception {
TestScannerProvider.sIncludes= new String[] { getProject().getProject().getLocation().toOSString() };
@ -50,9 +52,10 @@ public class BasicIncludeBrowserTest extends IncludeBrowserBaseTest {
openIncludeBrowser(source);
Tree tree = getIBTree();
checkTreeNode(tree, 0, "source.cpp");
TreeItem node = checkTreeNode(tree, 0, "source.cpp");
checkTreeNode(tree, 0, 0, "user.h");
checkTreeNode(tree, 0, 1, "system.h");
assertEquals(2, node.getItemCount());
// The tree has to be reversed
openIncludeBrowser(user, true);

View file

@ -12,6 +12,8 @@ package org.eclipse.cdt.internal.ui.includebrowser;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.LinkedHashSet;
import java.util.Set;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
@ -102,7 +104,7 @@ public class IBContentProvider extends AsyncTreeContentProvider {
directiveFile= node.getRepresentedFile();
}
if (includes.length > 0) {
ArrayList<IBNode> result= new ArrayList<IBNode>(includes.length);
Set<IBNode> result= new LinkedHashSet<IBNode>(includes.length);
for (int i = 0; i < includes.length; i++) {
IIndexInclude include = includes[i];
try {
@ -122,7 +124,8 @@ public class IBContentProvider extends AsyncTreeContentProvider {
include.getIncludedBy().getTimestamp());
newnode.setIsActiveCode(include.isActive());
newnode.setIsSystemInclude(include.isSystemInclude());
result.add(newnode);
if (!result.contains(newnode) || newnode.isActiveCode())
result.add(newnode);
} catch (CoreException e) {
CUIPlugin.log(e);
}