public void WriteDocs(TextWriter writer) { IndentedTextWriter writer1 = new IndentedTextWriter(writer, " "); List <string> a = new List <string> (); foreach (KeyValuePair <string, List <LanguageProcessor.DocCode> > doc in (IEnumerable <KeyValuePair <string, List <LanguageProcessor.DocCode> > >) this.docs) { string[] strArray = doc.Key.Split('.'); int equalsInBeginning = a.GetEqualsInBeginning <string> ((IList <string>)strArray); writer1.Indent -= a.Count; writer1.Indent += equalsInBeginning; for (int index = equalsInBeginning; index < strArray.Length; ++index) { writer1.WriteLine(strArray [index]); ++writer1.Indent; } Dictionary <string, List <LanguageProcessor.DocCode> > dict = new Dictionary <string, List <LanguageProcessor.DocCode> > (); foreach (LanguageProcessor.DocCode docCode in doc.Value) { dict.GetOldOrSetNew <string, List <LanguageProcessor.DocCode> > (docCode.code.Name).Add(docCode); } foreach (List <LanguageProcessor.DocCode> list in dict.Values) { this.WriteCode(list, writer1); writer.WriteLine(); } a.Clear(); a.AddRange((IEnumerable <string>)strArray); } }
private static void WriteCodeTemplates(IList <LanguageProcessor.DocCode> list, IndentedTextWriter indentedWriter, IList <CodeTemplate> templates) { Dictionary <string, List <string> > dictionary = new Dictionary <string, List <string> > ((IEqualityComparer <string>)StringComparer.CurrentCultureIgnoreCase); Dictionary <string, List <CodeTemplate> > dict = new Dictionary <string, List <CodeTemplate> > (); for (int index = 0; index < templates.Count; ++index) { string humanString = ((IEnumerable <string>)list [index].languages).ToHumanString <string> (); dict.GetOldOrSetNew <string, List <CodeTemplate> > (humanString).Add(templates [index]); foreach (TemplateParameter templateParameter in templates[index]) { dictionary.GetOldOrSetNew <string, List <string> > (templateParameter.name).AddRange((IEnumerable <string>)list [index].parameterDocs [templateParameter.name]); } } foreach (KeyValuePair <string, List <CodeTemplate> > keyValuePair in dict) { indentedWriter.WriteLine(keyValuePair.Key + ":"); ++indentedWriter.Indent; foreach (CodeTemplate code in keyValuePair.Value) { CodeTemplate.WriteDoc((TextWriter)indentedWriter, code); } --indentedWriter.Indent; } ++indentedWriter.Indent; List <string> stringList = new List <string> (); foreach (LanguageProcessor.DocCode docCode in (IEnumerable <LanguageProcessor.DocCode>)list) { if (docCode.mainDoc.Count > 0) { stringList.AddRange((IEnumerable <string>)docCode.mainDoc); break; } } if (stringList.Count > 0) { indentedWriter.WriteLineNoTabs(""); foreach (string str in stringList) { indentedWriter.WriteLine(str); } } if (dictionary.Count > 0) { LanguageProcessor.WriteParameters(indentedWriter, dictionary); } --indentedWriter.Indent; }
private static void WriteTerminatingStringTemplate(IList <LanguageProcessor.DocCode> list, IndentedTextWriter writer, IList <TerminatingStringTemplate> templates) { Dictionary <string, List <string> > dictionary = new Dictionary <string, List <string> > ((IEqualityComparer <string>)StringComparer.CurrentCultureIgnoreCase); Dictionary <string, List <TerminatingStringTemplate> > dict = new Dictionary <string, List <TerminatingStringTemplate> > (); for (int index = 0; index < templates.Count; ++index) { string humanString = ((IEnumerable <string>)list [index].languages).ToHumanString <string> (); dict.GetOldOrSetNew <string, List <TerminatingStringTemplate> > (humanString).Add(templates [index]); dictionary.GetOldOrSetNew <string, List <string> > (templates [index].Parameter.name).AddRange((IEnumerable <string>)list [index].parameterDocs [templates [index].Parameter.name]); } foreach (KeyValuePair <string, List <TerminatingStringTemplate> > keyValuePair in dict) { writer.WriteLine(keyValuePair.Key + ":"); ++writer.Indent; foreach (TerminatingStringTemplate template in keyValuePair.Value) { TerminatingStringTemplate.WriteDoc((TextWriter)writer, template); } --writer.Indent; } writer.WriteLineNoTabs(""); ++writer.Indent; string[] strArray = (string[])null; foreach (LanguageProcessor.DocCode docCode in (IEnumerable <LanguageProcessor.DocCode>)list) { if (docCode.mainDoc.Count > 0) { strArray = docCode.mainDoc.ToArray(); break; } } if (strArray != null) { foreach (string str in list[0].mainDoc) { writer.WriteLine(str); } } if (dictionary.Count > 0) { LanguageProcessor.WriteParameters(writer, dictionary); } --writer.Indent; }
private static void WriteTerminatingStringTemplate(IList<DocCode> list, IndentedTextWriter writer, IList<TerminatingStringTemplate> templates) { //TerminatingStringTemplate.WriteDoc(writer, template); var parameterDocs = new Dictionary<string, List<string>>( StringComparer.CurrentCultureIgnoreCase); var templatesSortedByGame = new Dictionary<string, List<TerminatingStringTemplate>>(); for (int i = 0; i < templates.Count; i++) { string key = list[i].languages.ToHumanString(); List<TerminatingStringTemplate> tempList = templatesSortedByGame.GetOldOrSetNew(key); tempList.Add(templates[i]); List<string> values = parameterDocs.GetOldOrSetNew(templates[i].Parameter.Name); values.AddRange(list[i].parameterDocs[templates[i].Parameter.Name]); } foreach (var item in templatesSortedByGame) { writer.WriteLine(item.Key + ":"); writer.Indent++; foreach (var template in item.Value) { WriteDoc(writer, template); } writer.Indent--; } writer.WriteLineNoTabs(""); writer.Indent++; string[] mainDoc = null; foreach (var item in list) { if (item.mainDoc.Count > 0) { mainDoc = item.mainDoc.ToArray(); break; } } if (mainDoc != null) { foreach (var item in list[0].mainDoc) { writer.WriteLine(item); } } #if DEBUG else { writer.WriteLine("No doc for this code found."); } #endif if (parameterDocs.Count > 0) { WriteParameters(writer, parameterDocs); } writer.Indent--; }
public void WriteDocs(TextWriter writer) { var indentedWriter = new IndentedTextWriter(writer, " "); List<string> names = new List<string>(); foreach (var code in docs) { string[] newNames = code.Key.Split('.'); int same = names.GetEqualsInBeginning(newNames); indentedWriter.Indent -= names.Count; indentedWriter.Indent += same; for (int i = same; i < newNames.Length; i++) { indentedWriter.WriteLine(newNames[i]); indentedWriter.Indent++; } var sortedDocs = new Dictionary<string, List<DocCode>>(); foreach (var docCode in code.Value) { List<DocCode> list = sortedDocs.GetOldOrSetNew(docCode.code.Name); list.Add(docCode); } foreach (var list in sortedDocs.Values) { WriteCode(list, indentedWriter); writer.WriteLine(); } names.Clear(); names.AddRange(newNames); } }
private static void WriteCodeTemplates(IList<DocCode> list, IndentedTextWriter indentedWriter, IList<CodeTemplate> templates) { var parameterDocs = new Dictionary<string, List<string>>( StringComparer.CurrentCultureIgnoreCase); var templatesSortedByGame = new Dictionary<string, List<CodeTemplate>>(); for (int i = 0; i < templates.Count; i++) { string key = list[i].languages.ToHumanString(); List<CodeTemplate> tempList = templatesSortedByGame.GetOldOrSetNew(key); tempList.Add(templates[i]); foreach (var parameter in templates[i]) { List<string> values = parameterDocs.GetOldOrSetNew(parameter.name); values.AddRange(list[i].parameterDocs[parameter.name]); } } foreach (var item in templatesSortedByGame) { indentedWriter.WriteLine(item.Key + ":"); indentedWriter.Indent++; foreach (var template in item.Value) { CodeTemplate.WriteDoc(indentedWriter, template); } indentedWriter.Indent--; } indentedWriter.Indent++; List<string> mainDoc = new List<string>(); foreach (var item in list) { if (item.mainDoc.Count > 0) { mainDoc.AddRange(item.mainDoc); break; } } if (mainDoc.Count > 0) { indentedWriter.WriteLineNoTabs(""); foreach (var item in mainDoc) { indentedWriter.WriteLine(item); } } #if DEBUG else { indentedWriter.WriteLine("No doc for this code found."); } #endif if (parameterDocs.Count > 0) { WriteParameters(indentedWriter, parameterDocs); } indentedWriter.Indent--; }