package org.eclipse.xtext.xdoc.generator.util; import org.eclipse.xtext.xdoc.xdoc.Code; import org.eclipse.xtext.xdoc.xdoc.CodeBlock; public class StringUtils { static public final CodeBlock removeIndent(CodeBlock cb) { if(cb.getContents().size() > 0 && cb.getContents().get(0) instanceof Code){ String code = ((Code)cb.getContents().get(0)).getContents(); int indent = code.length(); indent -= code.replaceAll("^(\n*)\\s*", "$1").length(); String string = "\n\\s{"+indent+"}"; for(int i = 0; i < cb.getContents().size(); i++) { if (cb.getContents().get(i) instanceof Code) { code = ((Code) cb.getContents().get(i)).getContents(); if(i == 0) { code = code.replaceAll("^\n*", "").replaceAll("^\\s{"+indent+"}", ""); } if(i == cb.getContents().size() - 1){ code = code.replaceAll("(\\s|\n)*$", ""); } code = code.replaceAll(string, "\n"); ((Code)cb.getContents().get(i)).setContents(code); } } if(cb.getContents().get(cb.getContents().size()-1) instanceof Code) { Code lastLines = (Code) cb.getContents().get(cb.getContents().size() - 1); lastLines.setContents(lastLines.getContents().replaceAll("\\s*$", "")); } } return cb; } }