void WriteFullTypeName(string fullName) { string ns, name; SplitTypeName(fullName, out ns, out name); if (!string.IsNullOrEmpty(ns)) { output.WriteNamespace(ns); output.Write(BoxedTextColor.Operator, "."); } output.Write(BoxedTextColor.Type, IdentifierEscaper.Escape(name)); }
/// <summary> /// Writes a namespace /// </summary> /// <param name="output">Output</param> /// <param name="decompiler">Decompiler</param> /// <param name="namespace">Namespace</param> public void WriteNamespace(ITextColorWriter output, IDecompiler decompiler, string @namespace) => output.WriteNamespace(@namespace);
void CreateUI(ITextColorWriter output, object?o, bool includeNamespace) { if (o is NamespaceSearchResult ns) { output.WriteNamespace(ns.Namespace); return; } if (o is TypeDef td) { Debug2.Assert(!(Context.Decompiler is null)); Context.Decompiler.WriteType(output, td, includeNamespace); return; } if (o is MethodDef md) { var methodNameColor = Context.Decompiler.MetadataTextColorProvider.GetColor(md); output.Write(methodNameColor, IdentifierEscaper.Escape(md.Name)); if (md.ImplMap is ImplMap implMap && !UTF8String.IsNullOrEmpty(implMap.Name) && implMap.Name != md.Name) { output.WriteSpace(); output.Write(BoxedTextColor.Punctuation, "("); output.Write(methodNameColor, IdentifierEscaper.Escape(implMap.Name)); output.Write(BoxedTextColor.Punctuation, ")"); } return; } if (o is FieldDef fd) { output.Write(Context.Decompiler.MetadataTextColorProvider.GetColor(fd), IdentifierEscaper.Escape(fd.Name)); return; } if (o is PropertyDef pd) { output.Write(Context.Decompiler.MetadataTextColorProvider.GetColor(pd), IdentifierEscaper.Escape(pd.Name)); return; } if (o is EventDef ed) { output.Write(Context.Decompiler.MetadataTextColorProvider.GetColor(ed), IdentifierEscaper.Escape(ed.Name)); return; } if (o is AssemblyDef asm) { output.Write(asm); return; } if (o is ModuleDef mod) { output.WriteModule(mod.FullName); return; } if (o is AssemblyRef asmRef) { output.Write(asmRef); return; } if (o is ModuleRef modRef) { output.WriteModule(modRef.FullName); return; } if (o is ParamDef paramDef) { output.Write(BoxedTextColor.Parameter, IdentifierEscaper.Escape(paramDef.Name)); return; } // non-.NET file if (o is IDsDocument document) { output.Write(BoxedTextColor.Text, document.GetShortName()); return; } if (o is ResourceNode resNode) { output.WriteFilename(resNode.Name); return; } if (o is ResourceElementNode resElNode) { output.WriteFilename(resElNode.Name); return; } if (o is ErrorMessage em) { output.Write(em.Color, em.Text); return; } Debug2.Assert(o is null); }
void CreateUI(ITextColorWriter output, object o, bool includeNamespace) { var ns = o as NamespaceSearchResult; if (ns != null) { output.WriteNamespace(ns.Namespace); return; } var td = o as TypeDef; if (td != null) { Debug.Assert(Context.Decompiler != null); Context.Decompiler.WriteType(output, td, includeNamespace); return; } var md = o as MethodDef; if (md != null) { output.Write(TextColorHelper.GetColor(md), IdentifierEscaper.Escape(md.Name)); return; } var fd = o as FieldDef; if (fd != null) { output.Write(TextColorHelper.GetColor(fd), IdentifierEscaper.Escape(fd.Name)); return; } var pd = o as PropertyDef; if (pd != null) { output.Write(TextColorHelper.GetColor(pd), IdentifierEscaper.Escape(pd.Name)); return; } var ed = o as EventDef; if (ed != null) { output.Write(TextColorHelper.GetColor(ed), IdentifierEscaper.Escape(ed.Name)); return; } var asm = o as AssemblyDef; if (asm != null) { output.Write(asm); return; } var mod = o as ModuleDef; if (mod != null) { output.WriteModule(mod.FullName); return; } var asmRef = o as AssemblyRef; if (asmRef != null) { output.Write(asmRef); return; } var modRef = o as ModuleRef; if (modRef != null) { output.WriteModule(modRef.FullName); return; } var paramDef = o as ParamDef; if (paramDef != null) { output.Write(BoxedTextColor.Parameter, IdentifierEscaper.Escape(paramDef.Name)); return; } // non-.NET file var document = o as IDsDocument; if (document != null) { output.Write(BoxedTextColor.Text, document.GetShortName()); return; } var resNode = o as IResourceNode; if (resNode != null) { output.WriteFilename(resNode.Name); return; } var resElNode = o as IResourceElementNode; if (resElNode != null) { output.WriteFilename(resElNode.Name); return; } var em = o as ErrorMessage; if (em != null) { output.Write(em.Color, em.Text); return; } Debug.Assert(o == null); }
void CreateUI(ITextColorWriter output, object o, bool includeNamespace) { if (o is NamespaceSearchResult ns) { output.WriteNamespace(ns.Namespace); return; } if (o is TypeDef td) { Debug.Assert(Context.Decompiler != null); Context.Decompiler.WriteType(output, td, includeNamespace); return; } if (o is MethodDef md) { output.Write(Context.Decompiler.MetadataTextColorProvider.GetColor(md), IdentifierEscaper.Escape(md.Name)); return; } if (o is FieldDef fd) { output.Write(Context.Decompiler.MetadataTextColorProvider.GetColor(fd), IdentifierEscaper.Escape(fd.Name)); return; } if (o is PropertyDef pd) { output.Write(Context.Decompiler.MetadataTextColorProvider.GetColor(pd), IdentifierEscaper.Escape(pd.Name)); return; } if (o is EventDef ed) { output.Write(Context.Decompiler.MetadataTextColorProvider.GetColor(ed), IdentifierEscaper.Escape(ed.Name)); return; } if (o is AssemblyDef asm) { output.Write(asm); return; } if (o is ModuleDef mod) { output.WriteModule(mod.FullName); return; } if (o is AssemblyRef asmRef) { output.Write(asmRef); return; } if (o is ModuleRef modRef) { output.WriteModule(modRef.FullName); return; } if (o is ParamDef paramDef) { output.Write(BoxedTextColor.Parameter, IdentifierEscaper.Escape(paramDef.Name)); return; } // non-.NET file if (o is IDsDocument document) { output.Write(BoxedTextColor.Text, document.GetShortName()); return; } if (o is ResourceNode resNode) { output.WriteFilename(resNode.Name); return; } if (o is ResourceElementNode resElNode) { output.WriteFilename(resElNode.Name); return; } if (o is ErrorMessage em) { output.Write(em.Color, em.Text); return; } Debug.Assert(o == null); }
/// <summary> /// Writes a namespace /// </summary> /// <param name="output">Output</param> /// <param name="language">Language</param> /// <param name="namespace">Namespace</param> public void WriteNamespace(ITextColorWriter output, ILanguage language, string @namespace) => output.WriteNamespace(@namespace);