reenabled folding preference for inner types
[phpeclipse.git] / net.sourceforge.phpeclipse / src / net / sourceforge / phpdt / internal / ui / text / folding / DefaultJavaFoldingStructureProvider.java
index 77a19ac..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);
@@ -663,7 +670,8 @@ public class DefaultJavaFoldingStructureProvider implements IProjectionListener,
                                                }
                                        }
                                }
-                               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()];