// leaves lines enclosed in brackets alone sS autoUnindent_honoringBrackets(S s) { LS l = lines_honoringBrackets(s); if (empty(l)) ret s; // find indent int n = Integer.MAX_VALUE; for (S l : toLines(s)) n = min(n, getIndentOfLine(l)); if (n == 0) ret s; // unindent for (int i = 0; i < l(l); i++) l.set(i, substring(l.get(i), n)); ret fromLines(l); }