Change field names from plural to singular so repeated fields will be singular on proto output.

PiperOrigin-RevId: 253227524
diff --git a/src/main/java/com/google/devtools/build/skydoc/fakebuildapi/FakeSkylarkRuleFunctionsApi.java b/src/main/java/com/google/devtools/build/skydoc/fakebuildapi/FakeSkylarkRuleFunctionsApi.java
index b59af09..bb99a4b 100644
--- a/src/main/java/com/google/devtools/build/skydoc/fakebuildapi/FakeSkylarkRuleFunctionsApi.java
+++ b/src/main/java/com/google/devtools/build/skydoc/fakebuildapi/FakeSkylarkRuleFunctionsApi.java
@@ -155,7 +155,7 @@
 
     RuleDefinitionIdentifier functionIdentifier = new RuleDefinitionIdentifier();
 
-    RuleInfo ruleInfo = RuleInfo.newBuilder().setDocString(doc).addAllAttributes(attrInfos).build();
+    RuleInfo ruleInfo = RuleInfo.newBuilder().setDocString(doc).addAllAttribute(attrInfos).build();
 
     ruleInfoList.add(new RuleInfoWrapper(functionIdentifier, ast.getLocation(), ruleInfo));
 
diff --git a/src/main/java/com/google/devtools/build/skydoc/fakebuildapi/repository/FakeRepositoryModule.java b/src/main/java/com/google/devtools/build/skydoc/fakebuildapi/repository/FakeRepositoryModule.java
index c3b257b..28b93ff 100644
--- a/src/main/java/com/google/devtools/build/skydoc/fakebuildapi/repository/FakeRepositoryModule.java
+++ b/src/main/java/com/google/devtools/build/skydoc/fakebuildapi/repository/FakeRepositoryModule.java
@@ -74,7 +74,7 @@
     RepositoryRuleDefinitionIdentifier functionIdentifier =
         new RepositoryRuleDefinitionIdentifier();
 
-    RuleInfo ruleInfo = RuleInfo.newBuilder().setDocString(doc).addAllAttributes(attrInfos).build();
+    RuleInfo ruleInfo = RuleInfo.newBuilder().setDocString(doc).addAllAttribute(attrInfos).build();
 
     ruleInfoList.add(new RuleInfoWrapper(functionIdentifier, ast.getLocation(), ruleInfo));
     return functionIdentifier;
diff --git a/src/main/java/com/google/devtools/build/skydoc/rendering/FunctionUtil.java b/src/main/java/com/google/devtools/build/skydoc/rendering/FunctionUtil.java
index 2119b07..9ff337b 100644
--- a/src/main/java/com/google/devtools/build/skydoc/rendering/FunctionUtil.java
+++ b/src/main/java/com/google/devtools/build/skydoc/rendering/FunctionUtil.java
@@ -74,7 +74,7 @@
     return UserDefinedFunctionInfo.newBuilder()
         .setFunctionName(functionName)
         .setDocString(functionDescription)
-        .addAllParameters(paramsInfo)
+        .addAllParameter(paramsInfo)
         .build();
   }
 
diff --git a/src/main/java/com/google/devtools/build/skydoc/rendering/MarkdownUtil.java b/src/main/java/com/google/devtools/build/skydoc/rendering/MarkdownUtil.java
index fe19424..f8a1716 100644
--- a/src/main/java/com/google/devtools/build/skydoc/rendering/MarkdownUtil.java
+++ b/src/main/java/com/google/devtools/build/skydoc/rendering/MarkdownUtil.java
@@ -38,7 +38,7 @@
   @SuppressWarnings("unused") // Used by markdown template.
   public String ruleSummary(String ruleName, RuleInfo ruleInfo) {
     List<String> attributeNames =
-        ruleInfo.getAttributesList().stream()
+        ruleInfo.getAttributeList().stream()
             .map(attr -> attr.getName())
             .collect(Collectors.toList());
     return summary(ruleName, attributeNames);
@@ -53,7 +53,7 @@
   @SuppressWarnings("unused") // Used by markdown template.
   public String providerSummary(String providerName, ProviderInfo providerInfo) {
     List<String> fieldNames =
-        providerInfo.getFieldInfosList().stream()
+        providerInfo.getFieldInfoList().stream()
             .map(field -> field.getName())
             .collect(Collectors.toList());
     return summary(providerName, fieldNames);
@@ -68,7 +68,7 @@
   @SuppressWarnings("unused") // Used by markdown template.
   public String funcSummary(UserDefinedFunctionInfo funcInfo) {
     List<String> paramNames =
-        funcInfo.getParametersList().stream()
+        funcInfo.getParameterList().stream()
             .map(param -> param.getName())
             .collect(Collectors.toList());
     return summary(funcInfo.getFunctionName(), paramNames);
diff --git a/src/main/java/com/google/devtools/build/skydoc/rendering/ProviderInfoWrapper.java b/src/main/java/com/google/devtools/build/skydoc/rendering/ProviderInfoWrapper.java
index ed7ec25..cfec4d6 100644
--- a/src/main/java/com/google/devtools/build/skydoc/rendering/ProviderInfoWrapper.java
+++ b/src/main/java/com/google/devtools/build/skydoc/rendering/ProviderInfoWrapper.java
@@ -39,7 +39,7 @@
       BaseFunction identifier, String docString, Collection<ProviderFieldInfo> fieldInfos) {
     this.identifier = identifier;
     this.providerInfo =
-        ProviderInfo.newBuilder().setDocString(docString).addAllFieldInfos(fieldInfos).build();
+        ProviderInfo.newBuilder().setDocString(docString).addAllFieldInfo(fieldInfos).build();
   }
 
   public BaseFunction getIdentifier() {
diff --git a/src/main/java/com/google/devtools/build/skydoc/rendering/proto/stardoc_output.proto b/src/main/java/com/google/devtools/build/skydoc/rendering/proto/stardoc_output.proto
index b567484..16cdb83 100644
--- a/src/main/java/com/google/devtools/build/skydoc/rendering/proto/stardoc_output.proto
+++ b/src/main/java/com/google/devtools/build/skydoc/rendering/proto/stardoc_output.proto
@@ -62,7 +62,7 @@
   string doc_string = 1;
 
   // The attributes of the rule.
-  repeated AttributeInfo attributes = 2;
+  repeated AttributeInfo attribute = 2;
 }
 
 // Representation of a Starlark rule attribute definition, comprised of an
@@ -91,7 +91,7 @@
   string function_name = 1;
 
   // The parameters for the function.
-  repeated FunctionParamInfo parameters = 2;
+  repeated FunctionParamInfo parameter = 2;
 
   // The documented description of the function (if specified in the function's
   // docstring).
@@ -133,5 +133,5 @@
   string doc_string = 1;
 
   // The fields of the provider.
-  repeated ProviderFieldInfo field_infos = 2;
+  repeated ProviderFieldInfo field_info = 2;
 }
diff --git a/src/main/java/com/google/devtools/build/skydoc/rendering/templates/func.vm b/src/main/java/com/google/devtools/build/skydoc/rendering/templates/func.vm
index a6bd36e..9e54006 100644
--- a/src/main/java/com/google/devtools/build/skydoc/rendering/templates/func.vm
+++ b/src/main/java/com/google/devtools/build/skydoc/rendering/templates/func.vm
@@ -8,7 +8,7 @@
 
 ${funcInfo.docString}
 
-#if (!$funcInfo.getParametersList().isEmpty())
+#if (!$funcInfo.getParameterList().isEmpty())
 #[[###]]# Parameters
 
 <table class="params-table">
@@ -17,7 +17,7 @@
     <col class="col-description" />
   </colgroup>
   <tbody>
-#foreach ($param in $funcInfo.getParametersList())
+#foreach ($param in $funcInfo.getParameterList())
     <tr id="${funcInfo.functionName}-${param.name}">
       <td><code>${param.name}</code></td>
       <td>
diff --git a/src/main/java/com/google/devtools/build/skydoc/rendering/templates/provider.vm b/src/main/java/com/google/devtools/build/skydoc/rendering/templates/provider.vm
index 2910576..b53cccf 100644
--- a/src/main/java/com/google/devtools/build/skydoc/rendering/templates/provider.vm
+++ b/src/main/java/com/google/devtools/build/skydoc/rendering/templates/provider.vm
@@ -8,7 +8,7 @@
 
 ${providerInfo.docString}
 
-#if (!$providerInfo.fieldInfosList.isEmpty())
+#if (!$providerInfo.fieldInfoList.isEmpty())
 #[[###]]# Fields
 
 <table class="params-table">
@@ -17,7 +17,7 @@
     <col class="col-description" />
   </colgroup>
   <tbody>
-#foreach ($field in $providerInfo.fieldInfosList)
+#foreach ($field in $providerInfo.fieldInfoList)
     <tr id="${providerName}-${field.name}">
       <td><code>${field.name}</code></td>
       <td>
diff --git a/src/main/java/com/google/devtools/build/skydoc/rendering/templates/rule.vm b/src/main/java/com/google/devtools/build/skydoc/rendering/templates/rule.vm
index 6769aca..47d1269 100644
--- a/src/main/java/com/google/devtools/build/skydoc/rendering/templates/rule.vm
+++ b/src/main/java/com/google/devtools/build/skydoc/rendering/templates/rule.vm
@@ -10,14 +10,14 @@
 
 #[[###]]# Attributes
 
-#if (!$ruleInfo.getAttributesList().isEmpty())
+#if (!$ruleInfo.getAttributeList().isEmpty())
 <table class="params-table">
   <colgroup>
     <col class="col-param" />
     <col class="col-description" />
   </colgroup>
   <tbody>
-#foreach ($attribute in $ruleInfo.getAttributesList())
+#foreach ($attribute in $ruleInfo.getAttributeList())
     <tr id="${ruleName}-${attribute.name}">
       <td><code>${attribute.name}</code></td>
       <td>
diff --git a/src/test/java/com/google/devtools/build/skydoc/SkydocTest.java b/src/test/java/com/google/devtools/build/skydoc/SkydocTest.java
index cf39827..c120e90 100644
--- a/src/test/java/com/google/devtools/build/skydoc/SkydocTest.java
+++ b/src/test/java/com/google/devtools/build/skydoc/SkydocTest.java
@@ -141,13 +141,13 @@
   }
 
   private static Iterable<String> getAttrNames(RuleInfo ruleInfo) {
-    return ruleInfo.getAttributesList().stream()
+    return ruleInfo.getAttributeList().stream()
         .map(attr -> attr.getName())
         .collect(Collectors.toList());
   }
 
   private static Iterable<AttributeType> getAttrTypes(RuleInfo ruleInfo) {
-    return ruleInfo.getAttributesList().stream()
+    return ruleInfo.getAttributeList().stream()
         .map(attr -> attr.getType())
         .collect(Collectors.toList());
   }