diff options
author | 2017-08-16 21:31:52 +0200 | |
---|---|---|
committer | 2017-08-17 09:54:07 +0200 | |
commit | c65147b4bb866bd8ec553dcbec5e9bb59c164493 (patch) | |
tree | 035b0652fdff7c1064bd4efd908fa1909c453a98 /src/main/java | |
parent | c780f2fe411876e6235069b50635fa2b1e8555f6 (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.java | 21 |
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"); |