Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/api-doc-tools.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMikhail Melnikov <mikhail_melnikov@epam.com>2017-11-30 15:02:24 +0300
committerJoel Martinez <joelmartinez@gmail.com>2017-11-30 18:51:54 +0300
commitf8cdfc060fc8df64af4fb7f131ea8c0627d48258 (patch)
tree36bc4370f3a136a2aacff2c7fe9988ea911795a6 /mdoc/Mono.Documentation/Updater/DocUtils.cs
parentb070267b5cf3986cdd79f52244a15412d0cbf70a (diff)
mdoc: Support for F# signatures
Added F# signatures and usage formatter Added unit and integration tests Closes #108
Diffstat (limited to 'mdoc/Mono.Documentation/Updater/DocUtils.cs')
-rw-r--r--mdoc/Mono.Documentation/Updater/DocUtils.cs91
1 files changed, 62 insertions, 29 deletions
diff --git a/mdoc/Mono.Documentation/Updater/DocUtils.cs b/mdoc/Mono.Documentation/Updater/DocUtils.cs
index 32ae5e3b..b31f6851 100644
--- a/mdoc/Mono.Documentation/Updater/DocUtils.cs
+++ b/mdoc/Mono.Documentation/Updater/DocUtils.cs
@@ -294,35 +294,68 @@ namespace Mono.Documentation.Updater
return inheritedInterfaces;
}
- public static void AppendFieldValue(StringBuilder buf, FieldDefinition field)
- {
- // enums have a value__ field, which we ignore
- if (((TypeDefinition)field.DeclaringType).IsEnum ||
- field.DeclaringType.IsGenericType())
- return;
- if (field.HasConstant && field.IsLiteral)
- {
- object val = null;
- try
- {
- val = field.Constant;
- }
- catch
- {
- return;
- }
- if (val == null)
- buf.Append(" = ").Append("null");
- else if (val is Enum)
- buf.Append(" = ").Append(val.ToString());
- else if (val is IFormattable)
- {
- string value = ((IFormattable)val).ToString(null, CultureInfo.InvariantCulture);
- if (val is string)
- value = "\"" + value + "\"";
- buf.Append(" = ").Append(value);
- }
- }
+ public static void AppendFieldValue(StringBuilder buf, FieldDefinition field)
+ {
+ // enums have a value__ field, which we ignore
+ if (((TypeDefinition)field.DeclaringType).IsEnum ||
+ field.DeclaringType.IsGenericType())
+ return;
+ if (field.HasConstant && field.IsLiteral)
+ {
+ object val = null;
+ try
+ {
+ val = field.Constant;
+ }
+ catch
+ {
+ return;
+ }
+ if (val == null)
+ buf.Append(" = ").Append("null");
+ else if (val is Enum)
+ buf.Append(" = ").Append(val.ToString());
+ else if (val is IFormattable)
+ {
+ string value = ((IFormattable)val).ToString(null, CultureInfo.InvariantCulture);
+ if (val is string)
+ value = "\"" + value + "\"";
+ buf.Append(" = ").Append(value);
+ }
+ }
+ }
+
+ /// <summary>
+ /// XPath is invalid if it containt '-symbol inside '...'.
+ /// So, put string which contains '-symbol inside "...", and vice versa
+ /// </summary>
+ public static string GetStringForXPath(string input)
+ {
+ if (!input.Contains("'"))
+ return $"\'{input}\'";
+ if (!input.Contains("\""))
+ return $"\"{input}\"";
+ return input;
+ }
+
+ /// <summary>
+ /// No documentation for property/event accessors.
+ /// </summary>
+ public static bool IsIgnored(MemberReference mi)
+ {
+ if (mi.Name.StartsWith("get_", StringComparison.Ordinal)) return true;
+ if (mi.Name.StartsWith("set_", StringComparison.Ordinal)) return true;
+ if (mi.Name.StartsWith("add_", StringComparison.Ordinal)) return true;
+ if (mi.Name.StartsWith("remove_", StringComparison.Ordinal)) return true;
+ if (mi.Name.StartsWith("raise_", StringComparison.Ordinal)) return true;
+ return false;
+ }
+
+ public static bool IsAvailablePropertyMethod(MethodDefinition method)
+ {
+ return method != null
+ && (IsExplicitlyImplemented(method)
+ || (!method.IsPrivate && !method.IsAssembly && !method.IsFamilyAndAssembly));
}
}
} \ No newline at end of file