From: <caw...@us...> - 2007-05-31 14:29:59
|
Revision: 2571 http://svn.sourceforge.net/rubyeclipse/?rev=2571&view=rev Author: cawilliams Date: 2007-05-31 07:29:58 -0700 (Thu, 31 May 2007) Log Message: ----------- if comments/docs have a preceding whitespace indentation, strip common indent off beginnign of all lines (otherwise RDoc will interpret everything as pre-formatted text) Modified Paths: -------------- trunk/org.rubypeople.rdt.core/src/org/rubypeople/rdt/core/util/RDocUtil.java Modified: trunk/org.rubypeople.rdt.core/src/org/rubypeople/rdt/core/util/RDocUtil.java =================================================================== --- trunk/org.rubypeople.rdt.core/src/org/rubypeople/rdt/core/util/RDocUtil.java 2007-05-31 13:52:50 UTC (rev 2570) +++ trunk/org.rubypeople.rdt.core/src/org/rubypeople/rdt/core/util/RDocUtil.java 2007-05-31 14:29:58 UTC (rev 2571) @@ -116,6 +116,7 @@ public static String getHTMLDocumentation(String docs) { if (docs == null) return null; + docs = removeUnecessaryIndent(docs); String script = "require 'rdoc/markup/simple_markup'\n" + "require 'rdoc/markup/simple_markup/to_html'\n" + "p = SM::SimpleMarkup.new\n" + @@ -135,6 +136,33 @@ return docs; } + private static String removeUnecessaryIndent(String docs) { + int count = 0; + String[] lines = docs.split("\n"); + if (lines == null || lines.length == 0) return docs; + String tmp = lines[0]; + if (tmp != null && tmp.length() > 0) { + while(tmp.charAt(0) == ' ') { + count++; + if (tmp.length() == 1) break; + tmp = tmp.substring(1); + } + } + StringBuffer modified = new StringBuffer(); + for (int i = 0; i < lines.length; i++) { + String line = lines[i]; + if (line.length() > count) { + if (line.substring(0, count).trim().length() == 0) { + line = line.substring(count); + } + } + modified.append(line); + modified.append("\n"); + } + modified.deleteCharAt(modified.length() - 1); // remove last newline + return modified.toString(); + } + private static Ruby getJRubyInstance() { if (fgRuby == null) fgRuby = Ruby.getDefaultInstance(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |