Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
View | Details | Raw Unified | Return to bug 313972 | Differences between
and this patch

Collapse All | Expand All

(-)ui/org/eclipse/jdt/ui/text/folding/DefaultJavaFoldingStructureProvider.java (-14 / +16 lines)
Lines 1-5 Link Here
1
/*******************************************************************************
1
/*******************************************************************************
2
 * Copyright (c) 2006, 2009 IBM Corporation and others.
2
 * Copyright (c) 2006, 2010 IBM Corporation and others.
3
 * All rights reserved. This program and the accompanying materials
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
5
 * which accompanies this distribution, and is available at
Lines 58-70 Link Here
58
import org.eclipse.jdt.core.IType;
58
import org.eclipse.jdt.core.IType;
59
import org.eclipse.jdt.core.JavaCore;
59
import org.eclipse.jdt.core.JavaCore;
60
import org.eclipse.jdt.core.JavaModelException;
60
import org.eclipse.jdt.core.JavaModelException;
61
import org.eclipse.jdt.core.SourceRange;
61
import org.eclipse.jdt.core.ToolFactory;
62
import org.eclipse.jdt.core.ToolFactory;
62
import org.eclipse.jdt.core.compiler.IProblem;
63
import org.eclipse.jdt.core.compiler.IProblem;
63
import org.eclipse.jdt.core.compiler.IScanner;
64
import org.eclipse.jdt.core.compiler.IScanner;
64
import org.eclipse.jdt.core.compiler.ITerminalSymbols;
65
import org.eclipse.jdt.core.compiler.ITerminalSymbols;
65
import org.eclipse.jdt.core.compiler.InvalidInputException;
66
import org.eclipse.jdt.core.compiler.InvalidInputException;
66
import org.eclipse.jdt.core.dom.CompilationUnit;
67
import org.eclipse.jdt.core.dom.CompilationUnit;
67
import org.eclipse.jdt.core.SourceRange;
68
68
69
import org.eclipse.jdt.ui.PreferenceConstants;
69
import org.eclipse.jdt.ui.PreferenceConstants;
70
70
Lines 480-491 Link Here
480
480
481
			if (captionLine < lastLine) {
481
			if (captionLine < lastLine) {
482
				int postOffset= document.getLineOffset(captionLine + 1);
482
				int postOffset= document.getLineOffset(captionLine + 1);
483
				IRegion postRegion= new Region(postOffset, offset + length - postOffset);
483
				int postLength= offset + length - postOffset;
484
484
				if (postLength > 0) {
485
				if (preRegion == null)
485
					IRegion postRegion= new Region(postOffset, postLength);
486
					return new IRegion[] { postRegion };
486
					if (preRegion == null)
487
487
						return new IRegion[] { postRegion };
488
				return new IRegion[] { preRegion, postRegion };
488
					return new IRegion[] { preRegion, postRegion };
489
				}
489
			}
490
			}
490
491
491
			if (preRegion != null)
492
			if (preRegion != null)
Lines 611-622 Link Here
611
612
612
			if (captionLine < lastLine) {
613
			if (captionLine < lastLine) {
613
				int postOffset= document.getLineOffset(captionLine + 1);
614
				int postOffset= document.getLineOffset(captionLine + 1);
614
				IRegion postRegion= new Region(postOffset, offset + length - postOffset);
615
				int postLength= offset + length - postOffset;
615
616
				if (postLength > 0) {
616
				if (preRegion == null)
617
					IRegion postRegion= new Region(postOffset, postLength);
617
					return new IRegion[] { postRegion };
618
					if (preRegion == null)
618
619
						return new IRegion[] { postRegion };
619
				return new IRegion[] { preRegion, postRegion };
620
					return new IRegion[] { preRegion, postRegion };
621
				}
620
			}
622
			}
621
623
622
			if (preRegion != null)
624
			if (preRegion != null)
(-)projection/org/eclipse/jface/text/projection/ProjectionDocument.java (-1 / +3 lines)
Lines 806-812 Link Here
806
		Position[] segments= getSegments();
806
		Position[] segments= getSegments();
807
		for (int i= 0; i < segments.length; i++) {
807
		for (int i= 0; i < segments.length; i++) {
808
			Segment segment= (Segment) segments[i];
808
			Segment segment= (Segment) segments[i];
809
			if (segment.isDeleted() || (segment.getLength() == 0 && i < segments.length - 1)) {
809
			if (segment.isDeleted() || (segment.getLength() == 0 && (i < segments.length - 1 || (i > 0 && segments[i - 1].isDeleted())))) {
810
				try {
810
				try {
811
					removePosition(fSegmentsCategory, segment);
811
					removePosition(fSegmentsCategory, segment);
812
					fMasterDocument.removePosition(fFragmentsCategory, segment.fragment);
812
					fMasterDocument.removePosition(fFragmentsCategory, segment.fragment);
Lines 818-824 Link Here
818
				Segment next= (Segment) segments[i + 1];
818
				Segment next= (Segment) segments[i + 1];
819
				if (next.isDeleted() || next.getLength() == 0)
819
				if (next.isDeleted() || next.getLength() == 0)
820
					continue;
820
					continue;
821
				
821
				Fragment fragment= segment.fragment;
822
				Fragment fragment= segment.fragment;
823
				
822
				if (fragment.getOffset() + fragment.getLength() == next.fragment.getOffset()) {
824
				if (fragment.getOffset() + fragment.getLength() == next.fragment.getOffset()) {
823
					// join fragments and their corresponding segments
825
					// join fragments and their corresponding segments
824
					segment.setLength(segment.getLength() + next.getLength());
826
					segment.setLength(segment.getLength() + next.getLength());

Return to bug 313972