public static async Task <string> GetEventUrlAsync(EventInfoWrapper ev) { var search = await SearchAsync(ev.Parent.Name, $"{ev.Parent.Name}.Events.cs"); var result = search.FirstOrDefault(x => x.Name == $"{ev.Parent.Name}.Events.cs")?.HtmlUrl ?? search.FirstOrDefault()?.HtmlUrl; if (result != null) { using (var client = new HttpClient()) { var url = result.Replace("/blob/", "/raw/"); var code = await client.GetStringAsync(url); var tree = CSharpSyntaxTree.ParseText(code); var root = (CompilationUnitSyntax)tree.GetRoot(); var source = root.DescendantNodes().OfType <EventDeclarationSyntax>().FirstOrDefault(x => x.Identifier.ValueText == ev.Event.Name); if (source == null) { return(result); } var startLine = source.GetLocation().GetLineSpan().StartLinePosition.Line + 1; var endLine = source.GetLocation().GetLineSpan().EndLinePosition.Line + 1; return($"{result}{(startLine == endLine ? $"#L{startLine}" : $"#L{startLine}-L{endLine}")}"); } }
void AddEvent(TextWriter writer, EventInfoWrapper info) { writer.WriteLine("<tr>"); writer.WriteLine("<td>"); writer.WriteLine("<img class=\"event\" src=\"{0}/resources/blank.gif\" title=\"Event\" alt=\"Event\"/>", RootRelativePath); if (info.IsStatic) { writer.WriteLine("<img class=\"static\" src=\"{0}/resources/blank.gif\" title=\"Static Event\" alt=\"Static Event\"/>", RootRelativePath); } writer.WriteLine("</td>"); writer.WriteLine("<td>"); writer.WriteLine("<a href=\"./{0}\">{1}</a>", FilenameGenerator.GenerateFilename(info), info.Name); writer.WriteLine("</td>"); writer.WriteLine("<td>"); var docs = NDocUtilities.FindDocumentation(this._currentNDoc, info); var html = NDocUtilities.TransformDocumentationToHTML(docs, "summary", Artifacts.AssemblyWrapper, this._version); writer.WriteLine(html); writer.WriteLine("</td>"); writer.WriteLine("</tr>"); }
public async Task <string> GetEventUrlAsync(EventInfoWrapper ev) { var search = await SearchAsync(ev.Event.DeclaringType.Name, $"{ev.Event.DeclaringType.Name}.Events.cs"); var result = search.FirstOrDefault(x => x.Name == $"{ev.Event.DeclaringType.Name}.Events.cs")?.HtmlUrl ?? search.FirstOrDefault()?.HtmlUrl; if (result != null) { using (var client = new HttpClient { Timeout = TimeSpan.FromSeconds(5) }) { string url = result.Replace("/blob/", "/raw/"); HttpResponseMessage httpResult = await client.GetAsync(url); if (!httpResult.IsSuccessStatusCode) { return(null); } var tree = CSharpSyntaxTree.ParseText(await httpResult.Content.ReadAsStringAsync()); var root = (CompilationUnitSyntax)tree.GetRoot(); var source = root.DescendantNodes().OfType <EventDeclarationSyntax>().FirstOrDefault(x => x.Identifier.ValueText == ev.Event.Name); if (source == null) { return(result); } var startLine = source.GetLocation().GetLineSpan().StartLinePosition.Line + 1; var endLine = source.GetLocation().GetLineSpan().EndLinePosition.Line + 1; return($"{result}{(startLine == endLine ? $"#L{startLine}" : $"#L{startLine}-L{endLine}")}"); } }
public string GenerateSyntax(EventInfoWrapper info) { var syntax = new SyntaxWriter(this._version); syntax.WriteToken("public"); syntax.WriteToken("event"); syntax.WriteRaw(string.Format(" {0}EventHandler {0}", info.Name)); return(syntax.CurrentSyntax); }
void AddEvent(TextWriter writer, EventInfoWrapper info) { writer.WriteLine("<tr>"); writer.WriteLine("<td>"); writer.WriteLine("<img class=\"event\" src=\"{0}/resources/blank.gif\" title=\"Event\" alt=\"Event\"/>", RootRelativePath); if (info.IsStatic) { writer.WriteLine("<img class=\"static\" src=\"{0}/resources/blank.gif\" title=\"Static Event\" alt=\"Static Event\"/>", RootRelativePath); } writer.WriteLine("</td>"); writer.WriteLine("<td>"); writer.WriteLine("<a href=\"{0}/items/{1}/{2}\">{3}</a>", RootRelativePath, GenerationManifest.OutputSubFolderFromNamespace(info.DeclaringType.Namespace), FilenameGenerator.GenerateFilename(info), info.Name); writer.WriteLine("</td>"); writer.WriteLine("<td>"); string html = string.Empty; var isInherited = !info.DeclaringType.Equals(_versionType); if (isInherited) { html = string.Format("Inherited from {0}.{1}.", info.DeclaringType.Namespace, info.DeclaringType.Name); } else { var docs = NDocUtilities.FindDocumentation(info); html = NDocUtilities.TransformDocumentationToHTML(docs, "summary", Artifacts.AssemblyWrapper, this._version); } writer.WriteLine(html); writer.WriteLine("</td>"); writer.WriteLine("</tr>"); }
public EventWriter(GenerationManifest artifacts, FrameworkVersion version, EventInfoWrapper eventInfo) : base(artifacts, version, eventInfo) { this._eventInfo = eventInfo; }
void AddEvent(TextWriter writer, EventInfoWrapper info) { writer.WriteLine("<tr>"); writer.WriteLine("<td>"); writer.WriteLine("<img class=\"event\" src=\"{0}/resources/blank.gif\" title=\"Event\" alt=\"Event\"/>", RootRelativePath); if (info.IsStatic) writer.WriteLine("<img class=\"static\" src=\"{0}/resources/blank.gif\" title=\"Static Event\" alt=\"Static Event\"/>", RootRelativePath); writer.WriteLine("</td>"); writer.WriteLine("<td>"); writer.WriteLine("<a href=\"{0}/items/{1}/{2}\">{3}</a>", RootRelativePath, GenerationManifest.OutputSubFolderFromNamespace(info.DeclaringType.Namespace), FilenameGenerator.GenerateFilename(info), info.Name); writer.WriteLine("</td>"); writer.WriteLine("<td>"); string html = string.Empty; if (_versionType.Namespace != info.DeclaringType.Namespace) { html = string.Format("Inherited from {0}.{1}.", info.DeclaringType.Namespace, info.DeclaringType.Name); } else { var docs = NDocUtilities.FindDocumentation(info); html = NDocUtilities.TransformDocumentationToHTML(docs, "summary", Artifacts.AssemblyWrapper, this._version); } writer.WriteLine(html); writer.WriteLine("</td>"); writer.WriteLine("</tr>"); }
void AddEvent(TextWriter writer, EventInfoWrapper info) { writer.WriteLine("<tr>"); writer.WriteLine("<td>"); writer.WriteLine("<img class=\"event\" src=\"{0}/resources/blank.gif\" title=\"Event\" alt=\"Event\"/>", RootRelativePath); if (info.IsStatic) writer.WriteLine("<img class=\"static\" src=\"{0}/resources/blank.gif\" title=\"Static Event\" alt=\"Static Event\"/>", RootRelativePath); writer.WriteLine("</td>"); writer.WriteLine("<td>"); writer.WriteLine("<a href=\"./{0}\">{1}</a>", FilenameGenerator.GenerateFilename(info), info.Name); writer.WriteLine("</td>"); writer.WriteLine("<td>"); var docs = NDocUtilities.FindDocumentation(this._currentNDoc, info); var html = NDocUtilities.TransformDocumentationToHTML(docs, "summary", Artifacts.AssemblyWrapper, this._version); writer.WriteLine(html); writer.WriteLine("</td>"); writer.WriteLine("</tr>"); }
public string GenerateSyntax(EventInfoWrapper info) { var syntax = new SyntaxWriter(this._version); syntax.WriteToken("public"); syntax.WriteToken("event"); syntax.WriteRaw(string.Format(" {0}EventHandler {0}", info.Name)); return syntax.CurrentSyntax; }