// rtrims each item static LS tok_splitAtEmptyLines(S s) { new L indices; LS tok = javaTokWithAllBrackets_cached(s); new LS out; int start = 0; S spacing = ""; for (int i = 2; i+1 < l(tok); i += 2) { int idx = indexOf_regexp(tok.get(i), "\r?\n\\s*\r?\n"); if (idx < 0) continue; int idx2 = idx+1; if (tok.get(i).charAt(idx) == '\r') ++idx2; out.add(dropPrefix("\n", spacing + joinSubList(tok, start, i))); start = i+1; spacing = substring(tok.get(i), idx2); // TODO: not exact } if (start < l(tok)) out.add(dropPrefix("\n", spacing + joinSubList(tok, start))); ret out; }