Example #1
0
        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));
        }
Example #2
0
 /// <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);
Example #3
0
        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);
        }
Example #4
0
        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);
        }
Example #5
0
        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);
        }
Example #6
0
 /// <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);
Example #7
0
		/// <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);