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:
parent
5f065af0d8
commit
484ec88e27
2 changed files with 9 additions and 3 deletions
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue