private int[] getTopLevelBraketIndexes(String piece, CodeReformatorKernel crk) { int[] ret = new int[2]; ret[0] = -1; ret[1] = -1; StateOfPosition[] stateOfPositions = crk.getStatesOfPosition(piece); int bra = piece.indexOf("("); while (-1 != bra) { crk.getStatesOfPosition(piece); if (0 == bra || stateOfPositions[bra - 1].isTopLevel) { ret[0] = bra; break; // break when first braket found } if (bra < piece.length() - 1) { bra = piece.indexOf("(", bra + 1); } else { break; } } if (-1 == ret[0]) { return ret; } int ket = piece.indexOf(")", bra); while (-1 != ket) { if (ket == piece.length() - 1 || stateOfPositions[ket].isTopLevel) { // the next top level ket is the counterpart to bra ret[1] = ket; break; } if (ket < piece.length() - 1) { ket = piece.indexOf(")", ket + 1); } else { break; } } return ret; }
private boolean hasTopLevelColon(String piece, CodeReformatorKernel crk) { int ix = piece.indexOf(","); StateOfPosition[] stateOfPositions = crk.getStatesOfPosition(piece); while (-1 != ix) { if (stateOfPositions[ix].isTopLevel) { return true; } if (ix < piece.length() - 1) { ix = piece.indexOf(",", ix + 1); } else { break; } } return false; }
boolean hasCommentEndingWithLineFeed(String in) { CodeReformatorKernel dum = new CodeReformatorKernel(_statementSeparator, new PieceMarkerSpec[0], _commentSpecs); StateOfPosition[] sops = dum.getStatesOfPosition(in); boolean inComment = false; for (int i = 0; i < sops.length; ++i) { if (!inComment && -1 < sops[i].commentIndex) { if (-1 < _commentSpecs[sops[i].commentIndex].commentEnd.indexOf('\n')) { return true; } inComment = true; } if (-1 == sops[i].commentIndex) { inComment = false; } } return false; }