/* * @see org.eclipse.wst.jsdt.internal.corext.text.comment.CommentLine#scanLine(int) */ protected void scanLine(final int line) { final CommentRegion parent = getParent(); final String start = getStartingPrefix().trim(); final String end = getEndingPrefix().trim(); final String content = getContentPrefix().trim(); final int lines = parent.getSize(); final CommentRange range = getFirst(); int offset = 0; int postfix = 0; String text = parent.getText(range.getOffset(), range.getLength()); if (line == 0) { offset = text.indexOf(start); if (offset >= 0 && text.substring(0, offset).trim().length() != 0) offset = -1; if (offset >= 0) { offset += start.length(); range.trimBegin(offset); postfix = text.lastIndexOf(end); if (postfix >= 0 && text.substring(postfix + end.length()).trim().length() != 0) postfix = -1; if (postfix >= offset) // comment ends on same line range.setLength(postfix - offset); else { postfix = text.lastIndexOf(content); if (postfix >= 0 && text.substring(postfix + content.length()).trim().length() != 0) postfix = -1; if (postfix >= offset) { range.setLength(postfix - offset); parent.setBorder(BORDER_UPPER); if (postfix > offset) { text = parent.getText(range.getOffset(), range.getLength()); final IRegion region = trimLine(text, content); range.move(region.getOffset()); range.setLength(region.getLength()); } } } } } else if (line == lines - 1) { offset = text.indexOf(content); if (offset >= 0 && text.substring(0, offset).trim().length() != 0) offset = -1; postfix = text.lastIndexOf(end); if (postfix >= 0 && text.substring(postfix + end.length()).trim().length() != 0) postfix = -1; if (offset >= 0 && offset == postfix) // no content on line, only the comment postfix range.setLength(0); else { if (offset >= 0) // omit the content prefix range.trimBegin(offset + content.length()); if (postfix >= 0) // omit the comment postfix range.trimEnd(-end.length()); text = parent.getText(range.getOffset(), range.getLength()); final IRegion region = trimLine(text, content); if (region.getOffset() != 0 || region.getLength() != text.length()) { range.move(region.getOffset()); range.setLength(region.getLength()); parent.setBorder(BORDER_UPPER); parent.setBorder(BORDER_LOWER); } } } else { offset = text.indexOf(content); if (offset >= 0 && text.substring(0, offset).trim().length() != 0) offset = -1; if (offset >= 0) { offset += content.length(); range.trimBegin(offset); } } }