Fixed SkylarkDoc.getDocumentation to append a period to the doc string if it is missing. Fixes #1522. -- Change-Id: Ib94c1544cb0862f40beeeadb60780da1a47dfc66 Reviewed-on: https://bazel-review.googlesource.com/#/c/4042 MOS_MIGRATED_REVID=128807763
diff --git a/src/main/java/com/google/devtools/build/docgen/skylark/SkylarkBuiltinMethodDoc.java b/src/main/java/com/google/devtools/build/docgen/skylark/SkylarkBuiltinMethodDoc.java index eaa1828..ed8492f 100644 --- a/src/main/java/com/google/devtools/build/docgen/skylark/SkylarkBuiltinMethodDoc.java +++ b/src/main/java/com/google/devtools/build/docgen/skylark/SkylarkBuiltinMethodDoc.java
@@ -16,7 +16,6 @@ import com.google.devtools.build.lib.skylarkinterface.Param; import com.google.devtools.build.lib.skylarkinterface.SkylarkSignature; import com.google.devtools.build.lib.syntax.BaseFunction; - import java.util.ArrayList; import java.util.List; @@ -53,7 +52,7 @@ } @Override - public String getDocumentation() { + protected String getEntityDocumentation() { return annotation.doc(); }
diff --git a/src/main/java/com/google/devtools/build/docgen/skylark/SkylarkDoc.java b/src/main/java/com/google/devtools/build/docgen/skylark/SkylarkDoc.java index 01f84e7..e8b7d32 100644 --- a/src/main/java/com/google/devtools/build/docgen/skylark/SkylarkDoc.java +++ b/src/main/java/com/google/devtools/build/docgen/skylark/SkylarkDoc.java
@@ -22,9 +22,9 @@ import com.google.devtools.build.lib.syntax.SkylarkList; import com.google.devtools.build.lib.syntax.SkylarkList.MutableList; import com.google.devtools.build.lib.syntax.SkylarkList.Tuple; - import java.util.Arrays; import java.util.Map; +import java.util.regex.Pattern; /** * Abstract class for containing documentation for a Skylark syntactic entity. @@ -38,10 +38,26 @@ public abstract String getName(); /** - * Returns a string containing the HTML documentation of the entity being - * documented. + * Returns a string containing the formatted HTML documentation of the entity being documented. */ - public abstract String getDocumentation(); + public String getDocumentation() { + String doc = getEntityDocumentation(); + if (doc == null || doc.length() == 0) { + return ""; + } + + // Check if valid punctiation is not present at the end of the documentation. + if (!Pattern.matches("[.?!]$", doc)) { + // Add a final period. + doc += "."; + } + return doc; + } + + /** + * Returns a string containing the HTML documentation of the entity, before being post-processed. + */ + protected abstract String getEntityDocumentation(); protected String getTypeAnchor(Class<?> returnType, Class<?> generic1) { return getTypeAnchor(returnType) + " of " + getTypeAnchor(generic1) + "s";
diff --git a/src/main/java/com/google/devtools/build/docgen/skylark/SkylarkJavaMethodDoc.java b/src/main/java/com/google/devtools/build/docgen/skylark/SkylarkJavaMethodDoc.java index 3ee3aab..66b5f97 100644 --- a/src/main/java/com/google/devtools/build/docgen/skylark/SkylarkJavaMethodDoc.java +++ b/src/main/java/com/google/devtools/build/docgen/skylark/SkylarkJavaMethodDoc.java
@@ -15,7 +15,6 @@ import com.google.devtools.build.lib.skylarkinterface.SkylarkCallable; import com.google.devtools.build.lib.util.StringUtilities; - import java.lang.reflect.Method; /** @@ -52,7 +51,7 @@ } @Override - public String getDocumentation() { + protected String getEntityDocumentation() { return callable.doc(); }
diff --git a/src/main/java/com/google/devtools/build/docgen/skylark/SkylarkModuleDoc.java b/src/main/java/com/google/devtools/build/docgen/skylark/SkylarkModuleDoc.java index 288eb40..288873f 100644 --- a/src/main/java/com/google/devtools/build/docgen/skylark/SkylarkModuleDoc.java +++ b/src/main/java/com/google/devtools/build/docgen/skylark/SkylarkModuleDoc.java
@@ -17,7 +17,6 @@ import com.google.devtools.build.lib.skylarkinterface.SkylarkCallable; import com.google.devtools.build.lib.skylarkinterface.SkylarkModule; import com.google.devtools.build.lib.skylarkinterface.SkylarkSignature; - import java.util.ArrayList; import java.util.Collection; import java.util.List; @@ -56,7 +55,7 @@ } @Override - public String getDocumentation() { + protected String getEntityDocumentation() { return module.doc(); }
diff --git a/src/main/java/com/google/devtools/build/docgen/skylark/SkylarkParamDoc.java b/src/main/java/com/google/devtools/build/docgen/skylark/SkylarkParamDoc.java index 849c276..69bb833 100644 --- a/src/main/java/com/google/devtools/build/docgen/skylark/SkylarkParamDoc.java +++ b/src/main/java/com/google/devtools/build/docgen/skylark/SkylarkParamDoc.java
@@ -68,7 +68,8 @@ return param.name(); } - @Override public String getDocumentation() { + @Override + protected String getEntityDocumentation() { return param.doc(); } }