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); }
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); }
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); }
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); }
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); }
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); } }
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); }
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); }
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); }
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); }
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); }
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); }
public void WriteName(ExceptionVM vm) { if (vm.ExceptionInfo.IsOtherExceptions) { output.Write(vm.Name, TextTokenKind.Text); } else { WriteFullTypeName(vm.Name); } }
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())); }
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); } }
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); }
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); }
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); }
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); }
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); } }
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); }
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); }
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); }
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); }
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); } }
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; } }
protected override void Write(ISyntaxHighlightOutput output, ILanguage language) { if (name != null) { output.Write(name, TextTokenKind.Keyword); } else { base.Write(output, language); } }
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); } }
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); } } } }
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); } }
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); }
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(); } }
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); }
void WriteImplMapInfo(ISyntaxHighlightOutput output) { output.Write(ReadStringsHeap(2), TextTokenKind.InstanceMethod); }
protected override void Write(ISyntaxHighlightOutput output, ILanguage language) { output.Write(dnSpy_Resources.BaseTypeFolder, TextTokenKind.Text); }
void WriteAssemblyRefInfo(ISyntaxHighlightOutput output) { output.Write(ReadStringsHeap(6), TextTokenKind.Assembly); }
public void Write(ISyntaxHighlightOutput output, ILanguage language, ModuleRef modRef, bool showToken) { output.Write(NameUtils.CleanIdentifier(modRef.Name), TextTokenKind.Text); WriteToken(output, modRef, showToken); }
protected override void Write(ISyntaxHighlightOutput output, ILanguage language) { if (name != null) output.Write(name, TextTokenKind.Keyword); else base.Write(output, language); }
void WritePropertyInfo(ISyntaxHighlightOutput output) { output.Write(ReadStringsHeap(1), TextTokenKind.InstanceProperty); }
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); }
protected override void Write(ISyntaxHighlightOutput output) { output.Write(dnSpy_AsmEditor_Resources.HexNode_TablesStream, TextTokenKind.InstanceField); }
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); }
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); }
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); }
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); }
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); }
void WriteModuleRefInfo(ISyntaxHighlightOutput output) { output.Write(ReadStringsHeap(0), TextTokenKind.Module); }
public void Write(ISyntaxHighlightOutput output, ILanguage language, AssemblyRef asmRef, bool showToken) { output.Write(NameUtils.CleanIdentifier(asmRef.Name), TextTokenKind.Text); WriteToken(output, asmRef, showToken); }
protected override void Write(ISyntaxHighlightOutput output) { output.Write(dnSpy_AsmEditor_Resources.HexNode_StorageSignature, TextTokenKind.InstanceField); }
protected override void Write(ISyntaxHighlightOutput output) { output.Write(dnSpy_AsmEditor_Resources.HexNode_OptHeader32, TextTokenKind.Keyword); }
protected override void Write(ISyntaxHighlightOutput output, ILanguage language) { output.Write(dnSpy_Analyzer_Resources.UsedByTreeNode, TextTokenKind.Text); }
void WriteGenericParamInfo(ISyntaxHighlightOutput output) { output.Write(ReadStringsHeap(3), TextTokenKind.TypeGenericParameter); }