package org.simantics.scl.compiler.internal.parsing.declarations; public class DDocumentationAst extends DeclarationAst { public final String documentation; public DDocumentationAst(String documentation) { this.documentation = cleanUp(documentation); } @Override public void toString(int indentation, StringBuilder b) { for(int i=0;i 0) { char c = documentation.charAt(end-1); if(c != ' ' && c != '\n') break; --end; } int begin = 0; for(int i=0;i= 0 && c != ' ') { int indentation = i - lineStart; commonIndentation = Math.min(commonIndentation, indentation); if(commonIndentation == 0) { if(begin == 0 && end == documentation.length()) return documentation; else return documentation.substring(begin, end); } lineStart = -1; } } // Remove common indentation StringBuilder result = new StringBuilder(); int charsToSkip = commonIndentation; for(int i=begin;i 0) --charsToSkip; else result.append(c); } return result.toString(); } }