diff --git a/src/Java.Interop.Tools.JavaSource/Java.Interop.Tools.JavaSource/SourceJavadocToXmldocParser.cs b/src/Java.Interop.Tools.JavaSource/Java.Interop.Tools.JavaSource/SourceJavadocToXmldocParser.cs index 5a0d79ce3..b50d8b514 100644 --- a/src/Java.Interop.Tools.JavaSource/Java.Interop.Tools.JavaSource/SourceJavadocToXmldocParser.cs +++ b/src/Java.Interop.Tools.JavaSource/Java.Interop.Tools.JavaSource/SourceJavadocToXmldocParser.cs @@ -25,6 +25,7 @@ internal enum ImportJavadoc { SerialTag = 1 << 8, SinceTag = 1 << 9, VersionTag = 1 << 10, + ExtraRemarks = 1 << 11, } [Flags] @@ -41,12 +42,16 @@ public enum XmldocStyle { | ImportJavadoc.SerialTag | ImportJavadoc.SinceTag | ImportJavadoc.VersionTag + | ImportJavadoc.ExtraRemarks , IntelliSense = ImportJavadoc.Summary | ImportJavadoc.ExceptionTag | ImportJavadoc.ParamTag | ImportJavadoc.ReturnTag , + IntelliSenseAndExtraRemarks = IntelliSense + | ImportJavadoc.ExtraRemarks + , } public class SourceJavadocToXmldocParser : Irony.Parsing.Parser { @@ -102,6 +107,9 @@ IEnumerable CreateParseIterator (ParseTree parseTree) (info.Remarks.Count > 0 || ExtraRemarks?.Length > 0)) { yield return new XElement ("remarks", info.Remarks, ExtraRemarks); } + else if (style.HasFlag (ImportJavadoc.ExtraRemarks) && ExtraRemarks?.Length > 0) { + yield return new XElement ("remarks", ExtraRemarks); + } foreach (var n in info.Returns) { yield return n; } diff --git a/tools/generator/CodeGeneratorOptions.cs b/tools/generator/CodeGeneratorOptions.cs index cdb4e254f..8a601d4e2 100644 --- a/tools/generator/CodeGeneratorOptions.cs +++ b/tools/generator/CodeGeneratorOptions.cs @@ -211,6 +211,7 @@ static CodeGenerationTarget ParseCodeGenerationTarget (string value) static XmldocStyle ParseXmldocStyle (string style) => style?.ToLowerInvariant () switch { "intellisense" => XmldocStyle.IntelliSense, + "intellisense+extraremarks" => XmldocStyle.IntelliSenseAndExtraRemarks, "full" => XmldocStyle.Full, _ => XmldocStyle.Full, }; diff --git a/tools/generator/Java.Interop.Tools.Generator.ObjectModel/JavadocInfo.cs b/tools/generator/Java.Interop.Tools.Generator.ObjectModel/JavadocInfo.cs index cfcdb4fc5..b1a0f5ab4 100644 --- a/tools/generator/Java.Interop.Tools.Generator.ObjectModel/JavadocInfo.cs +++ b/tools/generator/Java.Interop.Tools.Generator.ObjectModel/JavadocInfo.cs @@ -80,7 +80,7 @@ public static JavadocInfo CreateInfo (XElement element, XmldocStyle style) static XElement[] GetExtra (XElement element, XmldocStyle style, string declaringJniType, string declaringMemberName, string declaringMemberJniSignature) { - if (!style.HasFlag (XmldocStyle.Full)) + if (!style.HasFlag (XmldocStyle.IntelliSenseAndExtraRemarks)) return null; XElement javadocMetadata = null; @@ -254,6 +254,7 @@ static XElement CreateAndroidDocLinkUri (string prefix, string declaringJniType, new XAttribute ("type", "text/html"), new XElement ("a", new XAttribute ("href", new Uri (url.ToString ()).AbsoluteUri), + new XAttribute ("title", "Reference documentation"), "Java documentation for ", new XElement ("tt", java.ToString ()), "."));