예제 #1
0
        protected override void WriteToolTip(ITextColorWriter output, ILanguage language)
        {
            output.WriteModule(DnSpyFile.ModuleDef.Name);

            output.WriteLine();
            output.Write(BoxedTextColor.EnumField, TargetFrameworkInfo.Create(DnSpyFile.ModuleDef).ToString());

            output.WriteLine();
            output.Write(BoxedTextColor.EnumField, TargetFrameworkUtils.GetArchString(DnSpyFile.ModuleDef));

            output.WriteLine();
            output.WriteFilename(DnSpyFile.Filename);
        }
예제 #2
0
        protected override void WriteToolTip(ITextColorWriter output, IDecompiler decompiler)
        {
            output.WriteModule(Document.ModuleDef.Name);

            output.WriteLine();
            output.Write(BoxedTextColor.EnumField, TargetFrameworkInfo.Create(Document.ModuleDef).ToString());

            output.WriteLine();
            output.Write(BoxedTextColor.EnumField, TargetFrameworkUtils.GetArchString(Document.ModuleDef));

            output.WriteLine();
            output.WriteFilename(Document.Filename);
        }
예제 #3
0
		protected override void WriteCore(ITextColorWriter output, IDecompiler decompiler, DocumentNodeWriteOptions options) {
			if ((options & DocumentNodeWriteOptions.ToolTip) == 0)
				new NodePrinter().Write(output, decompiler, Document.ModuleDef, false);
			else {
				output.WriteModule(Document.ModuleDef.Name);

				output.WriteLine();
				output.Write(BoxedTextColor.Text, TargetFrameworkInfo.Create(Document.ModuleDef).ToString());

				output.WriteLine();
				output.Write(BoxedTextColor.Text, TargetFrameworkUtils.GetArchString(Document.ModuleDef));

				output.WriteLine();
				output.WriteFilename(Document.Filename);
			}
		}
예제 #4
0
        protected override void WriteCore(ITextColorWriter output, IDecompiler decompiler, DocumentNodeWriteOptions options)
        {
            if ((options & DocumentNodeWriteOptions.ToolTip) == 0)
            {
                new NodePrinter().Write(output, decompiler, Document.ModuleDef, false);
            }
            else
            {
                output.WriteModule(Document.ModuleDef.Name);

                output.WriteLine();
                output.Write(BoxedTextColor.Text, TargetFrameworkInfo.Create(Document.ModuleDef).ToString());

                output.WriteLine();
                output.Write(BoxedTextColor.Text, TargetFrameworkUtils.GetArchString(Document.ModuleDef));

                output.WriteLine();
                output.WriteFilename(Document.Filename);
            }
        }
예제 #5
0
        public void WriteModule(BreakpointVM vm)
        {
            var ilbp = vm.Breakpoint as ILCodeBreakpoint;

            if (ilbp != null)
            {
                // Always use the filename since it matches the module names in the call stack and
                // modules windows
                output.WriteModule(ModulePathToModuleName(ilbp.MethodToken.Module.ModuleName));
                return;
            }

            var debp = vm.Breakpoint as DebugEventBreakpoint;

            if (debp != null)
            {
                // nothing
                return;
            }
        }
예제 #6
0
 /// <summary>
 /// Writes a module
 /// </summary>
 /// <param name="output">Output</param>
 /// <param name="decompiler">Decompiler</param>
 /// <param name="module">Module</param>
 /// <param name="showToken">true to write tokens</param>
 public void Write(ITextColorWriter output, IDecompiler decompiler, ModuleDef module, bool showToken)
 {
     output.WriteModule(module.Name);
     WriteToken(output, module, showToken);
 }
예제 #7
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);
        }
예제 #8
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);
        }
예제 #9
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);
        }
예제 #10
0
 public void WriteModule(TabVM vm) => output.WriteModule(vm.Module);
예제 #11
0
 /// <summary>
 /// Writes a module
 /// </summary>
 /// <param name="output">Output</param>
 /// <param name="language">Language</param>
 /// <param name="module">Module</param>
 /// <param name="showToken">true to write tokens</param>
 public void Write(ITextColorWriter output, ILanguage language, ModuleDef module, bool showToken)
 {
     output.WriteModule(module.Name);
     WriteToken(output, module, showToken);
 }
예제 #12
0
		/// <summary>
		/// Writes a module
		/// </summary>
		/// <param name="output">Output</param>
		/// <param name="decompiler">Decompiler</param>
		/// <param name="module">Module</param>
		/// <param name="showToken">true to write tokens</param>
		public void Write(ITextColorWriter output, IDecompiler decompiler, ModuleDef module, bool showToken) {
			output.WriteModule(module.Name);
			WriteToken(output, module, showToken);
		}