예제 #1
0
		void WriteILOffset(ISyntaxHighlightOutput output, uint offset) {
			// Offsets are always in hex
			if (offset <= ushort.MaxValue)
				output.Write(string.Format(GetHexFormatUInt16(), offset), TextTokenKind.Number);
			else
				output.Write(string.Format(GetHexFormatUInt32(), offset), TextTokenKind.Number);
		}
예제 #2
0
 public void Write(ISyntaxHighlightOutput output, ILanguage language, MethodDef method, bool showToken)
 {
     output.Write(NameUtils.CleanIdentifier(method.Name), TextTokenKindUtils.GetTextTokenType(method));
     output.Write("(", TextTokenKind.Operator);
     foreach (var p in method.Parameters)
     {
         if (p.IsHiddenThisParameter)
         {
             continue;
         }
         if (p.MethodSigIndex > 0)
         {
             output.WriteCommaSpace();
         }
         language.WriteType(output, p.Type.ToTypeDefOrRef(), false, p.ParamDef);
     }
     if (method.CallingConvention == CallingConvention.VarArg || method.CallingConvention == CallingConvention.NativeVarArg)
     {
         if (method.MethodSig.GetParamCount() > 0)
         {
             output.WriteCommaSpace();
         }
         output.Write("...", TextTokenKind.Operator);
     }
     output.Write(")", TextTokenKind.Operator);
     output.WriteSpace();
     output.Write(":", TextTokenKind.Operator);
     output.WriteSpace();
     language.WriteType(output, method.ReturnType.ToTypeDefOrRef(), false, method.Parameters.ReturnParameter.ParamDef);
     WriteToken(output, method, showToken);
 }
예제 #3
0
 static void WriteShort(this ISyntaxHighlightOutput output, InstructionVM instr)
 {
     output.Write(instr.Index.ToString(), TextTokenKind.Number);
     output.WriteSpace();
     output.Write("(", TextTokenKind.Operator);
     output.Write(string.Format("{0:X4}", instr.Offset), TextTokenKind.Number);
     output.Write(")", TextTokenKind.Operator);
 }
예제 #4
0
 public void Write(ISyntaxHighlightOutput output, ILanguage language, EventDef @event, bool showToken)
 {
     output.Write(NameUtils.CleanIdentifier(@event.Name), TextTokenKindUtils.GetTextTokenType(@event));
     output.WriteSpace();
     output.Write(":", TextTokenKind.Operator);
     output.WriteSpace();
     language.WriteType(output, @event.EventType, false);
     WriteToken(output, @event, showToken);
 }
예제 #5
0
 public void Write(ISyntaxHighlightOutput output, ILanguage language, IDnSpyFile file)
 {
     var filename = GetFilename(file);
     var peImage = file.PEImage;
     if (peImage != null)
         output.Write(NameUtils.CleanName(filename), IsExe(peImage) ? TextTokenKind.AssemblyExe : TextTokenKind.Assembly);
     else
         output.Write(NameUtils.CleanName(filename), TextTokenKind.Text);
 }
예제 #6
0
		protected override void Write(ISyntaxHighlightOutput output) {
			output.Write(string.Format("{0}", index + 1), TextTokenKind.Number);
			if (infoTuple != null) {
				output.WriteSpace();
				output.Write("-", TextTokenKind.Operator);
				output.WriteSpace();
				infoTuple.Item2(output);
			}
		}
예제 #7
0
 public void Write(ISyntaxHighlightOutput output, ILanguage language, FieldDef field, bool showToken)
 {
     output.Write(NameUtils.CleanIdentifier(field.Name), TextTokenKindUtils.GetTextTokenType(field));
     output.WriteSpace();
     output.Write(":", TextTokenKind.Operator);
     output.WriteSpace();
     language.WriteType(output, field.FieldType.ToTypeDefOrRef(), false);
     WriteToken(output, field, showToken);
 }
예제 #8
0
		protected override void Write(ISyntaxHighlightOutput output) {
			output.Write(dnSpy_AsmEditor_Resources.HexNode_PE_Section, TextTokenKind.Keyword);
			output.WriteSpace();
			output.Write("#", TextTokenKind.Operator);
			output.Write(sectionNumber.ToString(), TextTokenKind.Number);
			output.Write(":", TextTokenKind.Operator);
			output.WriteSpace();
			output.Write(string.Format("{0}", imageSectionHeaderVM.NameVM.String), TextTokenKind.Type);
		}
예제 #9
0
 protected override void Write(ISyntaxHighlightOutput output)
 {
     output.Write(dnSpy_AsmEditor_Resources.HexNode_StorageStream, TextTokenKind.InstanceField);
     output.WriteSpace();
     output.Write("#", TextTokenKind.Operator);
     output.Write(streamNumber.ToString(), TextTokenKind.Number);
     output.Write(":", TextTokenKind.Operator);
     output.WriteSpace();
     output.Write(string.Format("{0}", storageStreamVM.RCNameVM.StringZ), storageStreamType == StorageStreamType.None ? TextTokenKind.Error : TextTokenKind.Type);
 }
예제 #10
0
 void WriteToken(ISyntaxHighlightOutput output, IMDTokenProvider tok, bool showToken)
 {
     if (!showToken)
     {
         return;
     }
     output.WriteSpace();
     output.Write("@", TextTokenKind.Operator);
     output.Write(string.Format("{0:X8}", tok.MDToken.Raw), TextTokenKind.Number);
 }
예제 #11
0
 protected override void Write(ISyntaxHighlightOutput output)
 {
     output.Write(string.Format("{0:X2}", (byte)tablesStreamVM.Table), TextTokenKind.Number);
     output.WriteSpace();
     output.Write(string.Format("{0}", tablesStreamVM.Table), TextTokenKind.Type);
     output.WriteSpace();
     output.Write("(", TextTokenKind.Operator);
     output.Write(string.Format("{0}", tablesStreamVM.Rows), TextTokenKind.Number);
     output.Write(")", TextTokenKind.Operator);
 }
예제 #12
0
 protected override void Write(ISyntaxHighlightOutput output)
 {
     output.Write(dnSpy_AsmEditor_Resources.HexNode_PE_Section, TextTokenKind.Keyword);
     output.WriteSpace();
     output.Write("#", TextTokenKind.Operator);
     output.Write(sectionNumber.ToString(), TextTokenKind.Number);
     output.Write(":", TextTokenKind.Operator);
     output.WriteSpace();
     output.Write(string.Format("{0}", imageSectionHeaderVM.NameVM.String), TextTokenKind.Type);
 }
예제 #13
0
 protected override void Write(ISyntaxHighlightOutput output)
 {
     output.Write(string.Format("{0}", index + 1), TextTokenKind.Number);
     if (infoTuple != null)
     {
         output.WriteSpace();
         output.Write("-", TextTokenKind.Operator);
         output.WriteSpace();
         infoTuple.Item2(output);
     }
 }
예제 #14
0
		protected override void Write(ISyntaxHighlightOutput output, ILanguage language) {
			if (hidesParent) {
				output.Write("(", TextTokenKind.Operator);
				output.Write(dnSpy_Analyzer_Resources.HidesParent, TextTokenKind.Text);
				output.Write(")", TextTokenKind.Operator);
				output.WriteSpace();
			}
			language.WriteType(output, analyzedMethod.DeclaringType, true);
			output.Write(".", TextTokenKind.Operator);
			new NodePrinter().Write(output, language, analyzedMethod, Context.ShowToken);
		}
예제 #15
0
 public void WriteName(ExceptionVM vm)
 {
     if (vm.ExceptionInfo.IsOtherExceptions)
     {
         output.Write(vm.Name, TextTokenKind.Text);
     }
     else
     {
         WriteFullTypeName(vm.Name);
     }
 }
예제 #16
0
        public void WriteName(BreakpointVM vm)
        {
            var ilbp = vm.Breakpoint as ILCodeBreakpoint;

            if (ilbp != null)
            {
                vm.NameError = false;
                bool printedToken = false;
                if (vm.Context.ShowTokens)
                {
                    WriteToken(output, ilbp.SerializedDnToken.Token);
                    output.WriteSpace();
                    printedToken = true;
                }
                // If this is a method in a dynamic module and the module hasn't been loaded yet,
                // this call will try to load it, and then open a dialog box showing the progress.
                // But in rare cases we can't show the dialog box because of Dispatcher limitations,
                // so if we must load the module, fail. Passing in false will prevent loading
                // dynamic modules.
                var method = vm.GetMethodDef(false);
                if (method == null)
                {
                    vm.NameError = true;
                    if (printedToken)
                    {
                        output.Write("???", TextTokenKind.Error);
                    }
                    else
                    {
                        output.Write(string.Format("0x{0:X8}", ilbp.SerializedDnToken.Token), TextTokenKind.Number);
                    }
                }
                else
                {
                    MethodLanguage.Write(output, method, GetFlags(vm.Context));
                }
                output.WriteSpace();
                output.Write("+", TextTokenKind.Operator);
                output.WriteSpace();
                WriteILOffset(output, ilbp.ILOffset);
                return;
            }

            var debp = vm.Breakpoint as DebugEventBreakpoint;

            if (debp != null)
            {
                //TODO:
                return;
            }

            Debug.Fail(string.Format("Unknown breakpoint type: {0}", vm.Breakpoint.GetType()));
        }
예제 #17
0
 void WriteILOffset(ISyntaxHighlightOutput output, uint offset)
 {
     // Offsets are always in hex
     if (offset <= ushort.MaxValue)
     {
         output.Write(string.Format(GetHexFormatUInt16(), offset), TextTokenKind.Number);
     }
     else
     {
         output.Write(string.Format(GetHexFormatUInt32(), offset), TextTokenKind.Number);
     }
 }
예제 #18
0
		protected override void WriteToolTip(ISyntaxHighlightOutput output, ILanguage language) {
			output.Write(DnSpyFile.AssemblyDef);

			output.WriteLine();
			output.Write(TargetFrameworkInfo.Create(DnSpyFile.AssemblyDef.ManifestModule).ToString(), TextTokenKind.EnumField);

			output.WriteLine();
			output.Write(TargetFrameworkUtils.GetArchString(DnSpyFile.AssemblyDef.ManifestModule), TextTokenKind.EnumField);

			output.WriteLine();
			output.WriteFilename(DnSpyFile.Filename);
		}
예제 #19
0
        protected override void WriteToolTip(ISyntaxHighlightOutput output, ILanguage language)
        {
            output.Write(DnSpyFile.AssemblyDef);

            output.WriteLine();
            output.Write(ExeUtils.GetDotNetVersion(DnSpyFile.AssemblyDef.ManifestModule), TextTokenKind.EnumField);

            output.WriteLine();
            output.Write(ExeUtils.GetArchString(DnSpyFile.AssemblyDef.ManifestModule), TextTokenKind.EnumField);

            output.WriteLine();
            output.WriteFilename(DnSpyFile.Filename);
        }
예제 #20
0
        protected override void WriteToolTip(ISyntaxHighlightOutput output, ILanguage language)
        {
            output.WriteModule(DnSpyFile.ModuleDef.Name);

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

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

            output.WriteLine();
            output.WriteFilename(DnSpyFile.Filename);
        }
예제 #21
0
 protected override void Write(ISyntaxHighlightOutput output, ILanguage language)
 {
     if (hidesParent)
     {
         output.Write("(", TextTokenKind.Operator);
         output.Write(dnSpy_Analyzer_Resources.HidesParent, TextTokenKind.Text);
         output.Write(")", TextTokenKind.Operator);
         output.WriteSpace();
     }
     language.WriteType(output, analyzedEvent.DeclaringType, true);
     output.Write(".", TextTokenKind.Operator);
     new NodePrinter().Write(output, language, analyzedEvent, Context.ShowToken);
 }
예제 #22
0
        public void Write(ISyntaxHighlightOutput output, ILanguage language, IDnSpyFile file)
        {
            var filename = GetFilename(file);
            var peImage  = file.PEImage;

            if (peImage != null)
            {
                output.Write(NameUtils.CleanName(filename), IsExe(peImage) ? TextTokenKind.AssemblyExe : TextTokenKind.Assembly);
            }
            else
            {
                output.Write(NameUtils.CleanName(filename), TextTokenKind.Text);
            }
        }
예제 #23
0
 static void Write(this ISyntaxHighlightOutput output, IList <InstructionVM> instrs)
 {
     output.Write("[", TextTokenKind.Operator);
     for (int i = 0; i < instrs.Count; i++)
     {
         if (i > 0)
         {
             output.Write(",", TextTokenKind.Operator);
             output.WriteSpace();
         }
         output.WriteShort(instrs[i]);
     }
     output.Write("]", TextTokenKind.Operator);
 }
예제 #24
0
        protected override void WriteToolTip(ISyntaxHighlightOutput output, ILanguage language)
        {
            output.Write(ExeUtils.GetArchString(DnSpyFile.PEImage.ImageNTHeaders.FileHeader.Machine), TextTokenKind.EnumField);

            output.WriteLine();
            output.WriteFilename(DnSpyFile.Filename);
        }
예제 #25
0
 static void WriteLong(this ISyntaxHighlightOutput output, InstructionVM instr)
 {
     output.WriteShort(instr);
     output.WriteSpace();
     output.Write(instr.Code.ToOpCode().Name, TextTokenKind.OpCode);
     output.WriteSpace();
     Write(output, instr.InstructionOperandVM);
 }
예제 #26
0
 public void Write(ISyntaxHighlightOutput output, ILanguage language, PropertyDef property, bool showToken, bool?isIndexer)
 {
     language.WriteName(output, property, isIndexer);
     output.WriteSpace();
     output.Write(":", TextTokenKind.Operator);
     output.WriteSpace();
     language.WriteType(output, property.PropertySig.GetRetType().ToTypeDefOrRef(), false);
     WriteToken(output, property, showToken);
 }
예제 #27
0
 public void WriteExpander(ValueVM vm)
 {
     if (vm.LazyLoading)
     {
         output.Write("+", TextTokenKind.Text);
     }
     else if (vm.Children.Count == 0)
     {
         // VS prints nothing
     }
     else if (vm.IsExpanded)
     {
         output.Write("-", TextTokenKind.Text);
     }
     else
     {
         output.Write("+", TextTokenKind.Text);
     }
 }
예제 #28
0
        void ITextOutput.Write(string text, TextTokenKind tokenKind)
        {
            if (col == 1 && indent > 0)
            {
                output.Write(new string('\t', indent), TextTokenKind.Text);
            }
            output.Write(text, tokenKind);
            int index = text.LastIndexOfAny(newLineChars);

            if (index >= 0)
            {
                line  += text.Split(lineFeedChar).Length - 1;                   // good enough for our purposes
                col    = text.Length - (index + 1) + 1;
                indent = 0;
            }
            else
            {
                col += text.Length;
            }
        }
예제 #29
0
 protected override void Write(ISyntaxHighlightOutput output, ILanguage language)
 {
     if (name != null)
     {
         output.Write(name, TextTokenKind.Keyword);
     }
     else
     {
         base.Write(output, language);
     }
 }
예제 #30
0
        protected override void Write(ISyntaxHighlightOutput output, ILanguage language)
        {
            var tdr = TryGetTypeDefOrRef();

            if (tdr == null)
            {
                output.Write("???", TextTokenKind.Error);
            }
            else
            {
                new NodePrinter().Write(output, language, tdr, Context.ShowToken);
            }
        }
예제 #31
0
        void WriteNamespaceName(ISyntaxHighlightOutput output, int nsIndex, int nameIndex)
        {
            var ns   = ReadStringsHeap(nsIndex);
            var name = ReadStringsHeap(nameIndex);

            output.Write(name, TextTokenKind.Type);

            if (!string.IsNullOrEmpty(ns))
            {
                output.WriteSpace();
                output.Write("-", TextTokenKind.Operator);
                output.WriteSpace();

                var parts = ns.Split('.');
                for (int i = 0; i < parts.Length; i++)
                {
                    output.Write(parts[i], TextTokenKind.NamespacePart);
                    if (i + 1 < parts.Length)
                    {
                        output.Write(".", TextTokenKind.Operator);
                    }
                }
            }
        }
예제 #32
0
 public void WritePID(ProcessVM vm)
 {
     if (useHex)
     {
         output.Write(string.Format("0x{0:X8}", vm.PID), TextTokenKind.Number);
     }
     else
     {
         output.Write(string.Format("{0}", vm.PID), TextTokenKind.Number);
     }
 }
예제 #33
0
        public void Write(ISyntaxHighlightOutput output, ILanguage language, AssemblyDef asm, bool showToken, bool showAssemblyVersion, bool showAssemblyPublicKeyToken)
        {
            output.Write(asm.Name, IsExe(asm.ManifestModule) ? TextTokenKind.AssemblyExe : TextTokenKind.Assembly);

            bool showAsmVer         = showAssemblyVersion;
            bool showPublicKeyToken = showAssemblyPublicKeyToken && !PublicKeyBase.IsNullOrEmpty2(asm.PublicKeyToken);

            if (showAsmVer || showPublicKeyToken)
            {
                output.WriteSpace();
                output.Write("(", TextTokenKind.Operator);

                bool needComma = false;
                if (showAsmVer)
                {
                    if (needComma)
                    {
                        output.WriteCommaSpace();
                    }
                    needComma = true;

                    output.Write(asm.Version);
                }

                if (showPublicKeyToken)
                {
                    if (needComma)
                    {
                        output.WriteCommaSpace();
                    }
                    needComma = true;

                    var pkt = asm.PublicKeyToken;
                    if (PublicKeyBase.IsNullOrEmpty2(pkt))
                    {
                        output.Write("null", TextTokenKind.Keyword);
                    }
                    else
                    {
                        output.Write(pkt.ToString(), TextTokenKind.Number);
                    }
                }

                output.Write(")", TextTokenKind.Operator);
            }

            WriteToken(output, asm, showToken);
        }
예제 #34
0
        static void Write(this ISyntaxHighlightOutput output, InstructionOperandVM opvm)
        {
            switch (opvm.InstructionOperandType)
            {
            case MethodBody.InstructionOperandType.None:
                break;

            case MethodBody.InstructionOperandType.SByte:   output.Write(opvm.SByte.StringValue, TextTokenKind.Number); break;

            case MethodBody.InstructionOperandType.Byte:    output.Write(opvm.Byte.StringValue, TextTokenKind.Number); break;

            case MethodBody.InstructionOperandType.Int32:   output.Write(opvm.Int32.StringValue, TextTokenKind.Number); break;;

            case MethodBody.InstructionOperandType.Int64:   output.Write(opvm.Int64.StringValue, TextTokenKind.Number); break;;

            case MethodBody.InstructionOperandType.Single:  output.Write(opvm.Single.StringValue, TextTokenKind.Number); break;;

            case MethodBody.InstructionOperandType.Double:  output.Write(opvm.Double.StringValue, TextTokenKind.Number); break;;

            case MethodBody.InstructionOperandType.String:  output.Write(opvm.String.StringValue, TextTokenKind.String); break;;

            case MethodBody.InstructionOperandType.Field:
            case MethodBody.InstructionOperandType.Method:
            case MethodBody.InstructionOperandType.Token:
            case MethodBody.InstructionOperandType.Type:
            case MethodBody.InstructionOperandType.MethodSig:
            case MethodBody.InstructionOperandType.SwitchTargets:
            case MethodBody.InstructionOperandType.BranchTarget:
            case MethodBody.InstructionOperandType.Local:
            case MethodBody.InstructionOperandType.Parameter:
                WriteObject(output, opvm.Value, WriteObjectFlags.ShortInstruction);
                break;

            default: throw new InvalidOperationException();
            }
        }
예제 #35
0
        public void Write(ISyntaxHighlightOutput output, ILanguage language, AssemblyDef asm, bool showToken, bool showAssemblyVersion, bool showAssemblyPublicKeyToken)
        {
            output.Write(asm.Name, IsExe(asm.ManifestModule) ? TextTokenKind.AssemblyExe : TextTokenKind.Assembly);

            bool showAsmVer = showAssemblyVersion;
            bool showPublicKeyToken = showAssemblyPublicKeyToken && !PublicKeyBase.IsNullOrEmpty2(asm.PublicKeyToken);

            if (showAsmVer || showPublicKeyToken) {
                output.WriteSpace();
                output.Write("(", TextTokenKind.Operator);

                bool needComma = false;
                if (showAsmVer) {
                    if (needComma)
                        output.WriteCommaSpace();
                    needComma = true;

                    output.Write(asm.Version);
                }

                if (showPublicKeyToken) {
                    if (needComma)
                        output.WriteCommaSpace();
                    needComma = true;

                    var pkt = asm.PublicKeyToken;
                    if (PublicKeyBase.IsNullOrEmpty2(pkt))
                        output.Write("null", TextTokenKind.Keyword);
                    else
                        output.Write(pkt.ToString(), TextTokenKind.Number);
                }

                output.Write(")", TextTokenKind.Operator);
            }

            WriteToken(output, asm, showToken);
        }
예제 #36
0
		void WriteImplMapInfo(ISyntaxHighlightOutput output) {
			output.Write(ReadStringsHeap(2), TextTokenKind.InstanceMethod);
		}
예제 #37
0
 protected override void Write(ISyntaxHighlightOutput output, ILanguage language)
 {
     output.Write(dnSpy_Resources.BaseTypeFolder, TextTokenKind.Text);
 }
예제 #38
0
		protected override void Write(ISyntaxHighlightOutput output) {
			output.Write(dnSpy_AsmEditor_Resources.HexNode_StorageStream, TextTokenKind.InstanceField);
			output.WriteSpace();
			output.Write("#", TextTokenKind.Operator);
			output.Write(streamNumber.ToString(), TextTokenKind.Number);
			output.Write(":", TextTokenKind.Operator);
			output.WriteSpace();
			output.Write(string.Format("{0}", storageStreamVM.RCNameVM.StringZ), storageStreamType == StorageStreamType.None ? TextTokenKind.Error : TextTokenKind.Type);
		}
예제 #39
0
		void WriteAssemblyRefInfo(ISyntaxHighlightOutput output) {
			output.Write(ReadStringsHeap(6), TextTokenKind.Assembly);
		}
예제 #40
0
 public void Write(ISyntaxHighlightOutput output, ILanguage language, ModuleRef modRef, bool showToken)
 {
     output.Write(NameUtils.CleanIdentifier(modRef.Name), TextTokenKind.Text);
     WriteToken(output, modRef, showToken);
 }
예제 #41
0
		protected override void Write(ISyntaxHighlightOutput output, ILanguage language) {
			if (name != null)
				output.Write(name, TextTokenKind.Keyword);
			else
				base.Write(output, language);
		}
예제 #42
0
		void WritePropertyInfo(ISyntaxHighlightOutput output) {
			output.Write(ReadStringsHeap(1), TextTokenKind.InstanceProperty);
		}
예제 #43
0
 public void Write(ISyntaxHighlightOutput output, ILanguage language, PropertyDef property, bool showToken, bool? isIndexer)
 {
     language.WriteName(output, property, isIndexer);
     output.WriteSpace();
     output.Write(":", TextTokenKind.Operator);
     output.WriteSpace();
     language.WriteType(output, property.PropertySig.GetRetType().ToTypeDefOrRef(), false);
     WriteToken(output, property, showToken);
 }
예제 #44
0
		protected override void Write(ISyntaxHighlightOutput output) {
			output.Write(dnSpy_AsmEditor_Resources.HexNode_TablesStream, TextTokenKind.InstanceField);
		}
예제 #45
0
		protected override void WriteToolTip(ISyntaxHighlightOutput output, ILanguage language) {
			output.Write(TargetFrameworkUtils.GetArchString(DnSpyFile.PEImage.ImageNTHeaders.FileHeader.Machine), TextTokenKind.EnumField);

			output.WriteLine();
			output.WriteFilename(DnSpyFile.Filename);
		}
예제 #46
0
 void WriteToken(ISyntaxHighlightOutput output, IMDTokenProvider tok, bool showToken)
 {
     if (!showToken)
         return;
     output.WriteSpace();
     output.Write("@", TextTokenKind.Operator);
     output.Write(string.Format("{0:X8}", tok.MDToken.Raw), TextTokenKind.Number);
 }
예제 #47
0
 public void Write(ISyntaxHighlightOutput output, ILanguage language, MethodDef method, bool showToken)
 {
     output.Write(NameUtils.CleanIdentifier(method.Name), TextTokenKindUtils.GetTextTokenType(method));
     output.Write("(", TextTokenKind.Operator);
     foreach (var p in method.Parameters) {
         if (p.IsHiddenThisParameter)
             continue;
         if (p.MethodSigIndex > 0)
             output.WriteCommaSpace();
         language.WriteType(output, p.Type.ToTypeDefOrRef(), false, p.ParamDef);
     }
     if (method.CallingConvention == CallingConvention.VarArg || method.CallingConvention == CallingConvention.NativeVarArg) {
         if (method.MethodSig.GetParamCount() > 0)
             output.WriteCommaSpace();
         output.Write("...", TextTokenKind.Operator);
     }
     output.Write(")", TextTokenKind.Operator);
     output.WriteSpace();
     output.Write(":", TextTokenKind.Operator);
     output.WriteSpace();
     language.WriteType(output, method.ReturnType.ToTypeDefOrRef(), false, method.Parameters.ReturnParameter.ParamDef);
     WriteToken(output, method, showToken);
 }
예제 #48
0
 public void Write(ISyntaxHighlightOutput output, ILanguage language, FieldDef field, bool showToken)
 {
     output.Write(NameUtils.CleanIdentifier(field.Name), TextTokenKindUtils.GetTextTokenType(field));
     output.WriteSpace();
     output.Write(":", TextTokenKind.Operator);
     output.WriteSpace();
     language.WriteType(output, field.FieldType.ToTypeDefOrRef(), false);
     WriteToken(output, field, showToken);
 }
예제 #49
0
        protected override void WriteToolTip(ISyntaxHighlightOutput output, ILanguage language)
        {
            output.Write(DnSpyFile.AssemblyDef);

            output.WriteLine();
            output.Write(ExeUtils.GetDotNetVersion(DnSpyFile.AssemblyDef.ManifestModule), TextTokenKind.EnumField);

            output.WriteLine();
            output.Write(ExeUtils.GetArchString(DnSpyFile.AssemblyDef.ManifestModule), TextTokenKind.EnumField);

            output.WriteLine();
            output.WriteFilename(DnSpyFile.Filename);
        }
예제 #50
0
		protected override void Write(ISyntaxHighlightOutput output, ILanguage language) {
			language.WriteType(output, analyzedField.DeclaringType, true);
			output.Write(".", TextTokenKind.Operator);
			new NodePrinter().Write(output, language, analyzedField, Context.ShowToken);
		}
예제 #51
0
 protected override void Write(ISyntaxHighlightOutput output, ILanguage language)
 {
     var td = TryGetTypeDef();
     if (td == null)
         output.Write("???", TextTokenKind.Error);
     else
         new NodePrinter().Write(output, language, td, Context.ShowToken);
 }
예제 #52
0
 public void Write(ISyntaxHighlightOutput output, ILanguage language, EventDef @event, bool showToken)
 {
     output.Write(NameUtils.CleanIdentifier(@event.Name), TextTokenKindUtils.GetTextTokenType(@event));
     output.WriteSpace();
     output.Write(":", TextTokenKind.Operator);
     output.WriteSpace();
     language.WriteType(output, @event.EventType, false);
     WriteToken(output, @event, showToken);
 }
예제 #53
0
		void WriteModuleRefInfo(ISyntaxHighlightOutput output) {
			output.Write(ReadStringsHeap(0), TextTokenKind.Module);
		}
예제 #54
0
 public void Write(ISyntaxHighlightOutput output, ILanguage language, AssemblyRef asmRef, bool showToken)
 {
     output.Write(NameUtils.CleanIdentifier(asmRef.Name), TextTokenKind.Text);
     WriteToken(output, asmRef, showToken);
 }
예제 #55
0
 protected override void Write(ISyntaxHighlightOutput output)
 {
     output.Write(dnSpy_AsmEditor_Resources.HexNode_StorageSignature, TextTokenKind.InstanceField);
 }
예제 #56
0
		protected override void Write(ISyntaxHighlightOutput output) {
			output.Write(dnSpy_AsmEditor_Resources.HexNode_OptHeader32, TextTokenKind.Keyword);
		}
예제 #57
0
		protected override void Write(ISyntaxHighlightOutput output, ILanguage language) {
			output.Write(dnSpy_Analyzer_Resources.UsedByTreeNode, TextTokenKind.Text);
		}
예제 #58
0
		protected override void Write(ISyntaxHighlightOutput output) {
			output.Write(string.Format("{0:X2}", (byte)tablesStreamVM.Table), TextTokenKind.Number);
			output.WriteSpace();
			output.Write(string.Format("{0}", tablesStreamVM.Table), TextTokenKind.Type);
			output.WriteSpace();
			output.Write("(", TextTokenKind.Operator);
			output.Write(string.Format("{0}", tablesStreamVM.Rows), TextTokenKind.Number);
			output.Write(")", TextTokenKind.Operator);
		}
예제 #59
0
 protected override void Write(ISyntaxHighlightOutput output, ILanguage language)
 {
     output.Write(dnSpy_Analyzer_Resources.UsedByTreeNode, TextTokenKind.Text);
 }
예제 #60
0
		void WriteGenericParamInfo(ISyntaxHighlightOutput output) {
			output.Write(ReadStringsHeap(3), TextTokenKind.TypeGenericParameter);
		}