Skip to content

Commit d3d2328

Browse files
TianqiZhangjoelmartinez
authored andcommitted
reorganize formatter namespaces and references
1 parent 1e6bd54 commit d3d2328

15 files changed

+90
-123
lines changed

mdoc/Mono.Documentation/MDocUpdater.cs

Lines changed: 15 additions & 106 deletions
Original file line numberDiff line numberDiff line change
@@ -9,24 +9,18 @@
99
using System.Xml;
1010
using System.Xml.Linq;
1111
using System.Xml.XPath;
12-
using mdoc.Mono.Documentation.Updater.Formatters;
13-
using Mono.Documentation.Updater.Formatters.CppFormatters;
1412
using Mono.Cecil;
1513
using Mono.Documentation.Updater;
16-
using Mono.Documentation.Updater.CppFormatters;
14+
using Mono.Documentation.Updater.Formatters;
1715
using Mono.Documentation.Updater.Frameworks;
1816
using Mono.Documentation.Updater.Statistics;
1917
using Mono.Documentation.Util;
2018
using Mono.Options;
2119

2220
using MyXmlNodeList = System.Collections.Generic.List<System.Xml.XmlNode>;
2321
using StringList = System.Collections.Generic.List<string>;
24-
using StringToXmlNodeMap = System.Collections.Generic.Dictionary<string, System.Xml.XmlNode>;
25-
using System.Web.UI.WebControls;
26-
using mdoc.Mono.Documentation.Updater;
27-
using Lucene.Net.Documents;
28-
using System.Runtime.Serialization;
29-
22+
using StringToXmlNodeMap = System.Collections.Generic.Dictionary<string, System.Xml.XmlNode>;
23+
3024
namespace Mono.Documentation
3125
{
3226
public class MDocUpdater : MDocCommand
@@ -51,19 +45,9 @@ public class MDocUpdater : MDocCommand
5145

5246
string since;
5347

54-
static DocIdFormatter docIdFormatterField;
5548
static MemberFormatter docTypeFormatterField;
5649
static MemberFormatter filenameFormatterField;
5750

58-
static DocIdFormatter docIdFormatter
59-
{
60-
get
61-
{
62-
if (docIdFormatterField == null)
63-
docIdFormatterField = new DocIdFormatter(MDocUpdater.Instance.TypeMap);
64-
return docIdFormatterField;
65-
}
66-
}
6751
static MemberFormatter docTypeFormatter
6852
{
6953
get
@@ -83,37 +67,6 @@ static MemberFormatter filenameFormatter
8367
}
8468
}
8569

86-
static MemberFormatter[] typeFormattersField;
87-
static MemberFormatter[] typeFormatters
88-
{
89-
get
90-
{
91-
if (typeFormattersField == null)
92-
typeFormattersField = new MemberFormatter[]{
93-
new CSharpMemberFormatter (MDocUpdater.Instance.TypeMap),
94-
new ILMemberFormatter (MDocUpdater.Instance.TypeMap),
95-
96-
};
97-
98-
return typeFormattersField;
99-
}
100-
}
101-
102-
static MemberFormatter[] memberFormattersField;
103-
static MemberFormatter[] memberFormatters
104-
{
105-
get
106-
{
107-
if (memberFormattersField == null)
108-
memberFormattersField = new MemberFormatter[]{
109-
new CSharpFullMemberFormatter (MDocUpdater.Instance.TypeMap),
110-
new ILFullMemberFormatter (MDocUpdater.Instance.TypeMap),
111-
112-
};
113-
return memberFormattersField;
114-
}
115-
}
116-
11770
private readonly List<string> CustomAttributeNamesToSkip = new List<string>()
11871
{
11972
Consts.CompilerGeneratedAttribute,
@@ -329,13 +282,13 @@ public override void Run (IEnumerable<string> args)
329282
"Add 'DocId' to the list of type and member signatures",
330283
v =>
331284
{
332-
AddFormatter(Consts.DocId);
285+
FormatterManager.AddFormatter(Consts.DocId);
333286
} },
334287
{ "lang=",
335288
"Add languages to the list of type and member signatures (DocId, VB.NET). Values can be coma separated",
336289
v =>
337290
{
338-
AddFormatter(v);
291+
FormatterManager.AddFormatter(v);
339292
} },
340293
{ "disable-searchdir-recurse",
341294
"Default behavior for adding search directories ('-L') is to recurse them and search in all subdirectories. This disables that",
@@ -382,7 +335,7 @@ public override void Run (IEnumerable<string> args)
382335
TypeMap map = TypeMap.FromXml(typeMapPath);
383336
this.TypeMap = map;
384337

385-
foreach (var f in typeFormatters.Union(memberFormatters))
338+
foreach (var f in FormatterManager.TypeFormatters.Union(FormatterManager.MemberFormatters))
386339
f.TypeMap = map;
387340

388341
}
@@ -539,50 +492,6 @@ public override void Run (IEnumerable<string> args)
539492
Console.WriteLine ("Members Added: {0}, Members Deleted: {1}", additions, deletions);
540493
}
541494

542-
private static void AddFormatter(string langId)
543-
{
544-
MemberFormatter memberFormatter;
545-
MemberFormatter typeFormatter;
546-
langId = langId.ToLower();
547-
var map = MDocUpdater.Instance.TypeMap;
548-
switch (langId)
549-
{
550-
case Consts.DocIdLowCase:
551-
typeFormatter = new DocIdFormatter(map);
552-
memberFormatter = new DocIdFormatter(map);
553-
break;
554-
case Consts.VbNetLowCase:
555-
typeFormatter = new VBMemberFormatter(map);
556-
memberFormatter = new VBMemberFormatter(map);
557-
break;
558-
case Consts.CppCliLowCase:
559-
typeFormatter = new CppMemberFormatter(map);
560-
memberFormatter = new CppFullMemberFormatter(map);
561-
break;
562-
case Consts.CppCxLowCase:
563-
typeFormatter = new CppCxMemberFormatter(map);
564-
memberFormatter = new CppCxFullMemberFormatter(map);
565-
break;
566-
case Consts.CppWinRtLowCase:
567-
typeFormatter = new CppWinRtMemberFormatter(map);
568-
memberFormatter = new CppWinRtFullMemberFormatter(map);
569-
break;
570-
case Consts.FSharpLowCase:
571-
case "fsharp":
572-
typeFormatter = new FSharpMemberFormatter(map);
573-
memberFormatter = new FSharpFullMemberFormatter(map);
574-
break;
575-
case Consts.JavascriptLowCase:
576-
typeFormatter = new JsMemberFormatter(map);
577-
memberFormatter = new JsMemberFormatter(map);
578-
break;
579-
default:
580-
throw new ArgumentException("Unsupported formatter id '" + langId + "'.");
581-
}
582-
typeFormattersField = typeFormatters.Union(new[] { typeFormatter }).ToArray();
583-
memberFormattersField = memberFormatters.Union(new[] { memberFormatter }).ToArray();
584-
}
585-
586495
public static bool IsInAssemblies (string name)
587496
{
588497
return Instance?.assemblies != null ? Instance.assemblies.Any (a => a.Contains (name)) : true;
@@ -1636,7 +1545,7 @@ public void DoUpdateType2 (string message, XmlDocument basefile, TypeDefinition
16361545
AddEiiNameAsAttribute(info.Member, oldmember, memberName);
16371546
}
16381547

1639-
string sig = oldmember2 != null ? memberFormatters[1].GetDeclaration (oldmember2) : null;
1548+
string sig = oldmember2 != null ? FormatterManager.MemberFormatters[1].GetDeclaration (oldmember2) : null;
16401549

16411550
// Interface implementations and overrides are deleted from the docs
16421551
// unless the overrides option is given.
@@ -1788,13 +1697,13 @@ public void DoUpdateType2 (string message, XmlDocument basefile, TypeDefinition
17881697
.Where(m =>
17891698
{
17901699
if (m is TypeDefinition) return false;
1791-
string cssig = memberFormatters[0].GetDeclaration(m);
1700+
string cssig = FormatterManager.MemberFormatters[0].GetDeclaration(m);
17921701
if (cssig == null) return false;
17931702

1794-
string sig = memberFormatters[1].GetDeclaration(m);
1703+
string sig = FormatterManager.MemberFormatters[1].GetDeclaration(m);
17951704
if (sig == null || seenmembers.ContainsKey(sig)) return false;
17961705

1797-
var docidsig = docIdFormatter.GetDeclaration(m);
1706+
var docidsig = FormatterManager.DocIdFormatter.GetDeclaration(m);
17981707
if (seenmembersdocid.ContainsKey(docidsig ?? "")) return false;
17991708

18001709
// Verify that the member isn't an explicitly implemented
@@ -2200,7 +2109,7 @@ private static bool MemberDocsHaveUserContent (XmlNode e)
22002109

22012110
public XmlElement StubType (AssemblySet set, AssemblyDefinition assembly, TypeDefinition type, FrameworkTypeEntry typeEntry, string output, IEnumerable<DocumentationImporter> importers, string Id, string Version)
22022111
{
2203-
string typesig = typeFormatters[0].GetDeclaration (type);
2112+
string typesig = FormatterManager.TypeFormatters[0].GetDeclaration (type);
22042113
if (typesig == null) return null; // not publicly visible
22052114

22062115
XmlDocument doc = new XmlDocument ();
@@ -2227,7 +2136,7 @@ public void UpdateType (XmlElement root, TypeDefinition type, FrameworkTypeEntry
22272136
root.SetAttribute ("Name", GetDocTypeName (type, useTypeProjection: false));
22282137
root.SetAttribute ("FullName", GetDocTypeFullName (type, useTypeProjection: false));
22292138

2230-
foreach (MemberFormatter f in typeFormatters)
2139+
foreach (MemberFormatter f in FormatterManager.TypeFormatters)
22312140
{
22322141
UpdateSignature(f, type, root, typeEntry);
22332142
}
@@ -2543,7 +2452,7 @@ private void UpdateMember (DocsNodeInfo info, FrameworkTypeEntry typeEntry, Dict
25432452
MakeDocNode (info, typeEntry.Framework.Importers, typeEntry);
25442453

25452454

2546-
foreach (MemberFormatter f in memberFormatters)
2455+
foreach (MemberFormatter f in FormatterManager.MemberFormatters)
25472456
{
25482457
UpdateSignature (f, mi, me, typeEntry, implementedMembers);
25492458
}
@@ -4468,7 +4377,7 @@ private XmlElement MakeMember (XmlDocument doc, DocsNodeInfo info, XmlNode membe
44684377
MemberReference mi = info.Member;
44694378
if (mi is TypeDefinition) return null;
44704379

4471-
string sigs = memberFormatters[0].GetDeclaration (mi);
4380+
string sigs = FormatterManager.MemberFormatters[0].GetDeclaration (mi);
44724381
if (sigs == null) return null; // not publicly visible
44734382

44744383
if (DocUtils.IsIgnored(mi))
@@ -4567,7 +4476,7 @@ private static string GetExplicitInterfaceMemberName(MemberReference mi)
45674476
/// SIGNATURE GENERATION FUNCTIONS
45684477
internal static bool IsPrivate (MemberReference mi)
45694478
{
4570-
return memberFormatters[0].GetDeclaration (mi) == null;
4479+
return FormatterManager.MemberFormatters[0].GetDeclaration (mi) == null;
45714480
}
45724481

45734482
internal static string GetMemberType (MemberReference mi)

mdoc/Mono.Documentation/Updater/Formatters/CppFormatters/CppFullMemberFormatter.cs

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,6 @@
33
using System.Globalization;
44
using System.Linq;
55
using System.Text;
6-
using System.Text.RegularExpressions;
7-
using System.Web.UI.HtmlControls;
8-
using mdoc.Mono.Documentation.Updater;
96
using Mono.Cecil;
107
using Mono.Collections.Generic;
118
using Mono.Documentation.Util;

mdoc/Mono.Documentation/Updater/Formatters/CppFormatters/CppMemberFormatter.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
using System.Text;
22
using Mono.Cecil;
3-
using Mono.Documentation.Updater.CppFormatters;
43

54
namespace Mono.Documentation.Updater.Formatters.CppFormatters
65
{

mdoc/Mono.Documentation/Updater/Formatters/CppFormatters/CppWinRtFullMemberFormatter.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,8 @@
44
using System.Runtime.Remoting.Contexts;
55
using System.Text;
66
using Mono.Cecil;
7-
using Mono.Documentation.Updater.Formatters.CppFormatters;
87

9-
namespace Mono.Documentation.Updater.CppFormatters
8+
namespace Mono.Documentation.Updater.Formatters.CppFormatters
109
{
1110
public class CppWinRtFullMemberFormatter : CppCxFullMemberFormatter
1211
{

mdoc/Mono.Documentation/Updater/Formatters/CppFormatters/CppWinRtMemberFormatter.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
using System.Text;
22
using Mono.Cecil;
3-
using Mono.Documentation.Updater.CppFormatters;
43

54
namespace Mono.Documentation.Updater.Formatters.CppFormatters
65
{
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
using Mono.Documentation.Updater.Formatters.CppFormatters;
2+
using System;
3+
using System.Collections.Generic;
4+
using System.Linq;
5+
6+
namespace Mono.Documentation.Updater.Formatters
7+
{
8+
static class FormatterManager
9+
{
10+
public static List<MemberFormatter> TypeFormatters { get; private set; } = new List<MemberFormatter>{
11+
new CSharpMemberFormatter(MDocUpdater.Instance.TypeMap),
12+
new ILMemberFormatter(MDocUpdater.Instance.TypeMap),
13+
};
14+
15+
public static List<MemberFormatter> MemberFormatters { get; private set; } = new List<MemberFormatter>{
16+
new CSharpFullMemberFormatter (MDocUpdater.Instance.TypeMap),
17+
new ILFullMemberFormatter (MDocUpdater.Instance.TypeMap),
18+
};
19+
20+
public static DocIdFormatter DocIdFormatter { get; private set; } = new DocIdFormatter(MDocUpdater.Instance.TypeMap);
21+
22+
public static void AddFormatter(string langId)
23+
{
24+
MemberFormatter memberFormatter;
25+
MemberFormatter typeFormatter;
26+
langId = langId.ToLower();
27+
var map = MDocUpdater.Instance.TypeMap;
28+
switch (langId)
29+
{
30+
case Consts.DocIdLowCase:
31+
typeFormatter = DocIdFormatter;
32+
memberFormatter = DocIdFormatter;
33+
break;
34+
case Consts.VbNetLowCase:
35+
typeFormatter = new VBMemberFormatter(map);
36+
memberFormatter = new VBMemberFormatter(map);
37+
break;
38+
case Consts.CppCliLowCase:
39+
typeFormatter = new CppMemberFormatter(map);
40+
memberFormatter = new CppFullMemberFormatter(map);
41+
break;
42+
case Consts.CppCxLowCase:
43+
typeFormatter = new CppCxMemberFormatter(map);
44+
memberFormatter = new CppCxFullMemberFormatter(map);
45+
break;
46+
case Consts.CppWinRtLowCase:
47+
typeFormatter = new CppWinRtMemberFormatter(map);
48+
memberFormatter = new CppWinRtFullMemberFormatter(map);
49+
break;
50+
case Consts.FSharpLowCase:
51+
case "fsharp":
52+
typeFormatter = new FSharpMemberFormatter(map);
53+
memberFormatter = new FSharpFullMemberFormatter(map);
54+
break;
55+
case Consts.JavascriptLowCase:
56+
typeFormatter = new JsMemberFormatter(map);
57+
memberFormatter = new JsMemberFormatter(map);
58+
break;
59+
default:
60+
throw new ArgumentException("Unsupported formatter id '" + langId + "'.");
61+
}
62+
TypeFormatters.Add(typeFormatter);
63+
MemberFormatters.Add(memberFormatter);
64+
}
65+
}
66+
}

mdoc/Mono.Documentation/Updater/Formatters/JsFormatter.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,9 @@
44
using Mono.Cecil;
55
using Mono.Cecil.Rocks;
66
using Mono.Collections.Generic;
7-
using Mono.Documentation.Updater;
87
using Mono.Documentation.Util;
98

10-
namespace mdoc.Mono.Documentation.Updater.Formatters
9+
namespace Mono.Documentation.Updater.Formatters
1110
{
1211
public class JsFormatter : MemberFormatter
1312
{

mdoc/Mono.Documentation/Updater/Formatters/JsMemberFormatter.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
using Mono.Documentation;
44
using Mono.Documentation.Updater;
55

6-
namespace mdoc.Mono.Documentation.Updater.Formatters
6+
namespace Mono.Documentation.Updater.Formatters
77
{
88
public class JsMemberFormatter : JsFormatter
99
{

mdoc/Mono.Documentation/Updater/Formatters/JsUsageFormatter.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
using Mono.Documentation.Updater;
66
using Mono.Documentation.Util;
77

8-
namespace mdoc.Mono.Documentation.Updater.Formatters
8+
namespace Mono.Documentation.Updater.Formatters
99
{
1010
public class JsUsageFormatter : JsFormatter
1111
{

mdoc/Mono.Documentation/Updater/Formatters/MemberFormatter.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66

77
using Mono.Documentation.Util;
88
using Mono.Cecil;
9-
using mdoc.Mono.Documentation.Updater;
109

1110
namespace Mono.Documentation.Updater
1211
{

0 commit comments

Comments
 (0)