--- /dev/null
+package org.simantics.scl.compiler.internal.parsing.documentation;\r
+\r
+public class Preformatted extends DocumentationElement {\r
+\r
+ String[] lines;\r
+ \r
+ public Preformatted(String content) {\r
+ lines = content.split("\n");\r
+ int indentation = Integer.MAX_VALUE;\r
+ for(int i=0;i<lines.length;++i) {\r
+ String line = lines[i];\r
+ for(int j=line.length();j>0;--j) {\r
+ char c = line.charAt(j-1);\r
+ if(c != '\n' && c != '\r' && c != ' ') {\r
+ line = line.substring(0, j);\r
+ break;\r
+ }\r
+ }\r
+ lines[i] = line;\r
+ }\r
+ for(String line : lines) {\r
+ for(int i=1;i<line.length()&&i<indentation;++i)\r
+ if(line.charAt(i) != ' ') {\r
+ indentation = i;\r
+ break;\r
+ }\r
+ }\r
+ for(int i=0;i<lines.length;++i) {\r
+ String line = lines[i];\r
+ lines[i] = indentation > line.length() ? "" : line.substring(indentation);\r
+ }\r
+ }\r
+\r
+ @Override\r
+ public void toHtml(HtmlUnparsingContext context) {\r
+ context.clear();\r
+ StringBuilder b = context.getStringBuilder();\r
+ b.append("<pre>\n");\r
+ for(String line : lines)\r
+ b.append(line).append('\n');\r
+ b.append("</pre>\n");\r
+ }\r
+\r
+}\r