doc change: Samples browsing: starter templates and navtree gen support.
Change-Id: I03f5eec1dcb71e96fed2ba0119a0b2c0bba56f49
diff --git a/src/com/google/doclava/SampleTagInfo.java b/src/com/google/doclava/SampleTagInfo.java
index 9b9e40a..4e14b2b 100644
--- a/src/com/google/doclava/SampleTagInfo.java
+++ b/src/com/google/doclava/SampleTagInfo.java
@@ -79,7 +79,7 @@
boolean trim = "@sample".equals(name);
if (id == null || "".equals(id)) {
- mIncluded = readFile(position, filename, id, trim, true, false);
+ mIncluded = readFile(position, filename, id, trim, true, false, false);
} else {
mIncluded = loadInclude(position, filename, id, trim);
}
@@ -106,6 +106,14 @@
}
}
+ static String addLineNumber(String line, String num) {
+ StringBuilder numberedLine = new StringBuilder();
+ numberedLine.append("<li id=\"" + num + "\">");
+ numberedLine.append(line);
+ numberedLine.append("</li>");
+ return numberedLine.substring(0);
+ }
+
static String loadInclude(SourcePositionInfo pos, String filename, String id, boolean trim) {
Reader input = null;
StringBuilder result = new StringBuilder();
@@ -196,20 +204,25 @@
}
static String readFile(SourcePositionInfo pos, String filename, String id, boolean trim,
- boolean escape, boolean errorOk) {
+ boolean escape, boolean numberedLines, boolean errorOk) {
Reader input = null;
StringBuilder result = new StringBuilder();
int trailing = 0;
boolean started = false;
+
try {
+
input = new FileReader(filename);
LineNumberReader lines = new LineNumberReader(input);
while (true) {
String line = lines.readLine();
+ String lineNum = Integer.toString(lines.getLineNumber());
+
if (line == null) {
break;
}
+
if (trim) {
if (isIncludeLine(line)) {
continue;
@@ -223,15 +236,28 @@
if (escape) {
line = escapeHtml(line);
}
+ if (numberedLines) {
+ line = addLineNumber(line, lineNum);
+ }
result.append(line);
trailing = 1; // add \n next time, maybe
started = true;
} else {
if (started) {
- trailing++;
+ if (numberedLines) {
+ result.append('\n');
+ line = line + " ";
+ line = addLineNumber(line, lineNum);
+ result.append(line);
+ } else {
+ trailing++;
+ }
}
}
} else {
+ if (numberedLines) {
+ line = addLineNumber(line, lineNum);
+ }
result.append(line);
result.append('\n');
}