append(sb, oldCode.substring(0, selPos1)); if (phPatPos >= 0) { append(sb, pattern.substring(0, phPatPos)); append(sb, selCode.trim()); append(sb, pattern.substring(phPatPos + PLACEHOLDER_LEN)); } else { append(sb, pattern); append(sb, oldCode.substring(selPos2)); } else { append(sb, oldCode.substring(0, phPos)); append(sb, pattern); newCaretPos = sb.length(); append(sb, oldCode.substring(phPos + PLACEHOLDER_LEN)); } else { append(sb, lCode); append(sb, pattern.substring(PLACEHOLDER_LEN, pattern.length() - PLACEHOLDER_LEN)); newCaretPos = sb.length(); append(sb, rCode); } else { append(sb, lCode); append(sb, pattern.substring(PLACEHOLDER_LEN)); newCaretPos = sb.length(); append(sb, rCode);