int offset = doc.getLineOffset(currentLine);
int length = doc.getLineLength(currentLine);
oldText = doc.get(offset, length);
+ String lineDelimiter = doc.getLineDelimiter(currentLine);
+ if (lineDelimiter == null) lineDelimiter = "";
// -- Starts at the end of the line, looking for the first
// non-first 'white space'
// -- it then breaks out. No point in carrying on, as we have
// found our true line end
- for (lineEnd = oldText.length(); lineEnd > 0; --lineEnd) {
+ for (lineEnd = oldText.length() - lineDelimiter.length(); lineEnd > 0; --lineEnd) {
if (oldText.charAt(lineEnd - 1) != '\t'
&& oldText.charAt(lineEnd - 1) != ' ') {
break;
}
// -- Only replace the line if the lengths are different
- if (lineEnd != oldText.length()) {
- String newText = oldText.substring(0, lineEnd);
+ if (lineEnd != oldText.length() - lineDelimiter.length()) {
+ String newText = oldText.substring(0, lineEnd) + lineDelimiter;
doc.replace(offset, length, newText);
if (offset + length <= cursorOffset) {
} else if (offset <= cursorOffset + selectionLength
&& selectionLength > 0) {
selectionLength -= oldText.length() - newText.length();
- } else if (offset + length == cursorOffset + 2) { // Check
- // if
- // the
- // cursor
- // is at
- // the
- // end
- // of
- // the
- // line.
+ } else if (offset + length == cursorOffset + 2) {
+ // Check if the cursor is at the end of the line.
cursorOffset -= 2;
}
}