Add anchors to the flags in the HTML help output.

--
MOS_MIGRATED_REVID=125568305
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 b64506d..3c5dbb9 100644
--- a/src/main/java/com/google/devtools/common/options/OptionsUsage.java
+++ b/src/main/java/com/google/devtools/common/options/OptionsUsage.java
@@ -131,10 +131,12 @@
    * Append the usage message for a single option-field message to 'usage'.
    */
   static void getUsageHtml(Field optionField, StringBuilder usage, Escaper escaper) {
+    String plainFlagName = optionField.getAnnotation(Option.class).name();
     String flagName = getFlagName(optionField);
     String typeDescription = getTypeDescription(optionField);
     Option annotation = optionField.getAnnotation(Option.class);
-    usage.append("<dt><code>--").append(flagName).append("</code>");
+    usage.append("<dt><code><a href=\"#flag--").append(plainFlagName).append("\"></a>--");
+    usage.append(flagName).append("</code>");
     if (annotation.abbrev() != '\0') {
       usage.append(" [<code>-").append(annotation.abbrev()).append("</code>]");
     }
@@ -164,7 +166,8 @@
       usage.append("<br/>\n");
       StringBuilder expandsMsg = new StringBuilder("Expands to:");
       for (String exp : annotation.expansion()) {
-        expandsMsg.append(" ").append(exp);
+        // TODO(ulfjack): Can we link to the expanded flags here?
+        expandsMsg.append(" <code>").append(exp).append("</code>");
       }
       usage.append(paragraphFill(escaper.escape(expandsMsg.toString()), 0, 80)); // (indent, width)
       usage.append('\n');