1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-06-07 17:56:01 +02:00
This commit is contained in:
David Inglis 2004-06-10 20:30:42 +00:00
parent 9d340c85d9
commit 2a7ee92a8a

View file

@ -61,12 +61,15 @@ public class CPElementSorter extends ViewerSorter {
public void sort(Viewer viewer, Object[] elements) { public void sort(Viewer viewer, Object[] elements) {
// include paths and symbol definitions must not be sorted // include paths and symbol definitions must not be sorted
List sort = new ArrayList(elements.length); List sort = new ArrayList(elements.length);
List dontSort = new ArrayList(elements.length); List includes = new ArrayList(elements.length);
for(int i = 0; i < elements.length; i++) { List syms = new ArrayList(elements.length);
for (int i = 0; i < elements.length; i++) {
if (elements[i] instanceof CPElement) { if (elements[i] instanceof CPElement) {
CPElement element = (CPElement)elements[i]; CPElement element = (CPElement)elements[i];
if ( element.getEntryKind() == IPathEntry.CDT_INCLUDE || element.getEntryKind() == IPathEntry.CDT_MACRO) { if (element.getEntryKind() == IPathEntry.CDT_INCLUDE) {
dontSort.add(elements[i]); includes.add(elements[i]);
} else if (element.getEntryKind() == IPathEntry.CDT_MACRO) {
syms.add(elements[i]);
} else { } else {
sort.add(elements[i]); sort.add(elements[i]);
} }
@ -74,10 +77,10 @@ public class CPElementSorter extends ViewerSorter {
sort.add(elements[i]); sort.add(elements[i]);
} }
} }
Object[] sorted = new Object[elements.length]; System.arraycopy(sort.toArray(), 0, elements, 0, sort.size());
System.arraycopy(sort.toArray(), 0, sorted, 0, sort.size()); super.sort(viewer, elements);
super.sort(viewer, sorted); System.arraycopy(includes.toArray(), 0, elements, sort.size(), includes.size());
System.arraycopy(dontSort.toArray(), 0, sorted, sort.size(), dontSort.size()); System.arraycopy(syms.toArray(), 0, elements, sort.size() + includes.size(), syms.size());
} }
} }