aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java
diff options
context:
space:
mode:
authorGravatar ccalvarin <ccalvarin@google.com>2017-08-16 21:31:52 +0200
committerGravatar Irina Iancu <elenairina@google.com>2017-08-17 09:54:07 +0200
commitc65147b4bb866bd8ec553dcbec5e9bb59c164493 (patch)
tree035b0652fdff7c1064bd4efd908fa1909c453a98 /src/main/java
parentc780f2fe411876e6235069b50635fa2b1e8555f6 (diff)
Fix terminal output expansion flag spacing & add implicit requirements.
Add unit tests for individual flag usage output. Also move around some of the sample expansion function test options, which could be used more widely, to minimize recreating the boilerplate samples. RELNOTES: None. PiperOrigin-RevId: 165478776
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/com/google/devtools/common/options/OptionsUsage.java21
1 files changed, 16 insertions, 5 deletions
diff --git a/src/main/java/com/google/devtools/common/options/OptionsUsage.java b/src/main/java/com/google/devtools/common/options/OptionsUsage.java
index 633b6f60cb..61829e2d99 100644
--- a/src/main/java/com/google/devtools/common/options/OptionsUsage.java
+++ b/src/main/java/com/google/devtools/common/options/OptionsUsage.java
@@ -56,6 +56,8 @@ class OptionsUsage {
StringBuilder out = new StringBuilder();
String sep = "";
for (String paragraph : NEWLINE_SPLITTER.split(in)) {
+ // TODO(ccalvarin) break iterators expect hyphenated words to be line-breakable, which looks
+ // funny for --flag
BreakIterator boundary = BreakIterator.getLineInstance(); // (factory)
boundary.setText(paragraph);
out.append(sep).append(indentString);
@@ -132,18 +134,27 @@ class OptionsUsage {
return;
}
if (!annotation.help().equals("")) {
- usage.append(paragraphFill(annotation.help(), 4, 80)); // (indent, width)
+ usage.append(paragraphFill(annotation.help(), /*indent=*/ 4, /*width=*/ 80));
usage.append('\n');
}
ImmutableList<String> expansion = getExpansionIfKnown(optionField, optionsData);
if (expansion == null) {
- usage.append(" Expands to unknown options.\n");
+ usage.append(paragraphFill("Expands to unknown options.", /*indent=*/ 6, /*width=*/ 80));
+ usage.append('\n');
} else if (!expansion.isEmpty()) {
StringBuilder expandsMsg = new StringBuilder("Expands to: ");
for (String exp : expansion) {
expandsMsg.append(exp).append(" ");
}
- usage.append(paragraphFill(expandsMsg.toString(), 4, 80)); // (indent, width)
+ usage.append(paragraphFill(expandsMsg.toString(), /*indent=*/ 6, /*width=*/ 80));
+ usage.append('\n');
+ }
+ if (annotation.implicitRequirements().length > 0) {
+ StringBuilder requiredMsg = new StringBuilder("Using this option will also add: ");
+ for (String req : annotation.implicitRequirements()) {
+ requiredMsg.append(req).append(" ");
+ }
+ usage.append(paragraphFill(requiredMsg.toString(), /*indent=*/ 6, /*width=*/ 80));
usage.append('\n');
}
}
@@ -187,7 +198,7 @@ class OptionsUsage {
usage.append("</dt>\n");
usage.append("<dd>\n");
if (!annotation.help().isEmpty()) {
- usage.append(paragraphFill(escaper.escape(annotation.help()), 0, 80)); // (indent, width)
+ usage.append(paragraphFill(escaper.escape(annotation.help()), /*indent=*/ 0, /*width=*/ 80));
usage.append('\n');
}
ImmutableList<String> expansion = getExpansionIfKnown(optionField, optionsData);
@@ -203,7 +214,7 @@ class OptionsUsage {
.append(escaper.escape(exp))
.append("</code><br/>\n");
}
- usage.append(expandsMsg.toString()); // (indent, width)
+ usage.append(expandsMsg.toString());
usage.append('\n');
}
usage.append("</dd>\n");