private ReplaceEdit getReplaceEdit(int editStart, int editEnd, String text, IRegion region) { int regionEnd = region.getOffset() + region.getLength(); if (editStart < region.getOffset() && regionEnd < editEnd) { int breaksInReplacement = this.tm.countLineBreaksBetween(text, 0, text.length()); int breaksBeforeRegion = this.tm.countLineBreaksBetween(this.source, editStart, region.getOffset()); int breaksAfterRegion = this.tm.countLineBreaksBetween(this.source, regionEnd, editEnd); if (breaksBeforeRegion + breaksAfterRegion > breaksInReplacement) { text = ""; //$NON-NLS-1$ editStart = region.getOffset(); editEnd = regionEnd; } } if (region.getOffset() > editStart && isOnlyWhitespace(text)) { int breaksInReplacement = this.tm.countLineBreaksBetween(text, 0, text.length()); int breaksOutsideRegion = this.tm.countLineBreaksBetween(this.source, editStart, region.getOffset()); int breaksToPreserve = breaksInReplacement - breaksOutsideRegion; text = adaptReplaceText(text, breaksToPreserve, false, region.getOffset() - 1); editStart = region.getOffset(); } if (regionEnd < editEnd && isOnlyWhitespace(text)) { int breaksInReplacement = this.tm.countLineBreaksBetween(text, 0, text.length()); int breaksOutsideRegion = this.tm.countLineBreaksBetween(this.source, regionEnd, editEnd); int breaksToPreserve = breaksInReplacement - breaksOutsideRegion; text = adaptReplaceText(text, breaksToPreserve, true, regionEnd); editEnd = regionEnd; } return new ReplaceEdit(editStart, editEnd - editStart, text); }
private ReplaceEdit getReplaceEdit(int editStart, int editEnd, String text, IRegion region) { int regionEnd = region.getOffset() + region.getLength(); if (editStart < region.getOffset() && regionEnd < editEnd) { int breaksInReplacement = this.tm.countLineBreaksBetween(text, 0, text.length()); int breaksBeforeRegion = this.tm.countLineBreaksBetween(this.source, editStart, region.getOffset()); int breaksAfterRegion = this.tm.countLineBreaksBetween(this.source, regionEnd, editEnd); if (breaksBeforeRegion + breaksAfterRegion > breaksInReplacement) { text = ""; //$NON-NLS-1$ editStart = region.getOffset(); editEnd = regionEnd; } } if (region.getOffset() > editStart && isOnlyWhitespace(text)) { int breaksInReplacement = this.tm.countLineBreaksBetween(text, 0, text.length()); int breaksOutsideRegion = this.tm.countLineBreaksBetween(this.source, editStart, region.getOffset()); int breaksToPreserve = breaksInReplacement - breaksOutsideRegion; text = adaptReplaceText(text, breaksToPreserve, false, region.getOffset() - 1); editStart = region.getOffset(); } if (regionEnd < editEnd && isOnlyWhitespace(text)) { int breaksInReplacement = this.tm.countLineBreaksBetween(text, 0, text.length()); int breaksOutsideRegion = this.tm.countLineBreaksBetween(this.source, regionEnd, editEnd); int breaksToPreserve = breaksInReplacement - breaksOutsideRegion; text = adaptReplaceText(text, breaksToPreserve, true, regionEnd); editEnd = regionEnd; } return new ReplaceEdit(editStart, editEnd - editStart, text); }
private ReplaceEdit getReplaceEdit(int editStart, int editEnd, String text, IRegion region) { int regionEnd = region.getOffset() + region.getLength(); if (editStart < region.getOffset() && regionEnd < editEnd) { int breaksInReplacement = this.tm.countLineBreaksBetween(text, 0, text.length()); int breaksBeforeRegion = this.tm.countLineBreaksBetween(this.source, editStart, region.getOffset()); int breaksAfterRegion = this.tm.countLineBreaksBetween(this.source, regionEnd, editEnd); if (breaksBeforeRegion + breaksAfterRegion > breaksInReplacement) { text = ""; //$NON-NLS-1$ editStart = region.getOffset(); editEnd = regionEnd; } } if (region.getOffset() > editStart && isOnlyWhitespace(text)) { int breaksInReplacement = this.tm.countLineBreaksBetween(text, 0, text.length()); int breaksOutsideRegion = this.tm.countLineBreaksBetween(this.source, editStart, region.getOffset()); int breaksToPreserve = breaksInReplacement - breaksOutsideRegion; text = adaptReplaceText(text, breaksToPreserve, false, region.getOffset() - 1); editStart = region.getOffset(); } if (regionEnd < editEnd && isOnlyWhitespace(text)) { int breaksInReplacement = this.tm.countLineBreaksBetween(text, 0, text.length()); int breaksOutsideRegion = this.tm.countLineBreaksBetween(this.source, regionEnd, editEnd); int breaksToPreserve = breaksInReplacement - breaksOutsideRegion; text = adaptReplaceText(text, breaksToPreserve, true, regionEnd); editEnd = regionEnd; } return new ReplaceEdit(editStart, editEnd - editStart, text); }