reenabled folding preference for inner types
[phpeclipse.git] / net.sourceforge.phpeclipse / src / net / sourceforge / phpdt / internal / ui / text / folding / DefaultJavaFoldingStructureProvider.java
index 2396518..c06a287 100644 (file)
@@ -560,7 +560,13 @@ public class DefaultJavaFoldingStructureProvider implements IProjectionListener,
                // createProjection = true;
                // break;
                case IJavaElement.TYPE:
-                       collapse = fAllowCollapsing && fCollapseInnerTypes && isInnerType((IType) element);
+                       collapse = fAllowCollapsing;
+                       if (isInnerType((IType) element)) {
+                               collapse = collapse && fCollapseInnerTypes;
+                       }
+                       else {
+                               collapse = false; //don't allow the most outer type to be folded, may be changed in future versions
+                       }
                        createProjection = true;
                        break;
                case IJavaElement.METHOD:
@@ -630,6 +636,7 @@ public class DefaultJavaFoldingStructureProvider implements IProjectionListener,
                                        return null;
 
                                List regions = new ArrayList();
+                               // now add all comments first to the regions list
                                if (fFirstType == null && element instanceof IType) {
                                        fFirstType = (IType) element;
                                        IRegion headerComment = computeHeaderComment(fFirstType);
@@ -641,7 +648,6 @@ public class DefaultJavaFoldingStructureProvider implements IProjectionListener,
 
                                final int shift = range.getOffset();
                                int start = shift;
-                               regions.add(new Region(range.getOffset(), range.getLength()));
                                if (element instanceof IType) {
                                        Scanner scanner = ToolFactory.createScanner(true, false, false, false);
                                        scanner.setSource(contents.toCharArray());
@@ -663,9 +669,9 @@ public class DefaultJavaFoldingStructureProvider implements IProjectionListener,
                                                        continue;
                                                }
                                        }
-                                       regions.add(new Region(start, shift + range.getLength() - start));
                                }
-
+                               // at the end add the element region
+                               regions.add(new Region(range.getOffset(), range.getLength()));
 
                                if (regions.size() > 0) {
                                        IRegion[] result = new IRegion[regions.size()];