public void generateFullNameString() { Name test = new Name("Kanye", "West"); test.Title = "Mr."; Assert.AreEqual("Mr. Kanye West", NameUtilities.fullNameString(test)); }
/// <summary> /// Writes a method /// </summary> /// <param name="output">Output</param> /// <param name="decompiler">Decompiler</param> /// <param name="method">Method</param> /// <param name="showToken">true to write tokens</param> public void Write(ITextColorWriter output, IDecompiler decompiler, MethodDef method, bool showToken) { output.Write(decompiler.MetadataTextColorProvider.GetColor(method), NameUtilities.CleanIdentifier(method.Name)); output.Write(BoxedTextColor.Punctuation, "("); foreach (var p in method.Parameters) { if (p.IsHiddenThisParameter) { continue; } if (p.MethodSigIndex > 0) { output.WriteCommaSpace(); } decompiler.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(BoxedTextColor.Operator, "..."); } output.Write(BoxedTextColor.Punctuation, ")"); output.WriteSpace(); output.Write(BoxedTextColor.Punctuation, ":"); output.WriteSpace(); decompiler.WriteType(output, method.ReturnType.ToTypeDefOrRef(), false, method.Parameters.ReturnParameter.ParamDef); WriteToken(output, method, showToken); }
/// <inheritdoc/> public virtual void WriteShort(IDecompilerOutput output, IDecompiler decompiler, bool showOffset) { decompiler.WriteCommentBegin(output, true); output.WriteOffsetComment(this, showOffset); const string LTR = "\u200E"; output.Write(NameUtilities.CleanName(Name) + LTR, this, DecompilerReferenceFlags.Local | DecompilerReferenceFlags.Definition, BoxedTextColor.Comment); string extra = null; switch (Resource.ResourceType) { case ResourceType.AssemblyLinked: extra = ((AssemblyLinkedResource)Resource).Assembly.FullName; break; case ResourceType.Linked: var file = ((LinkedResource)Resource).File; extra = string.Format("{0}, {1}, {2}", file.Name, file.ContainsNoMetaData ? "ContainsNoMetaData" : "ContainsMetaData", SimpleTypeConverter.ByteArrayToString(file.HashValue)); break; case ResourceType.Embedded: extra = string.Format(dnSpy_Contracts_DnSpy_Resources.NumberOfBytes, ((EmbeddedResource)Resource).Data.Length); break; } output.Write(string.Format(" ({0}{1}, {2})", extra == null ? string.Empty : string.Format("{0}, ", extra), Resource.ResourceType, Resource.Attributes), BoxedTextColor.Comment); decompiler.WriteCommentEnd(output, true); output.WriteLine(); }
/// <summary> /// "Decompiles" the data /// </summary> /// <param name="context">Context</param> /// <param name="stream">Stream</param> /// <param name="name">Name</param> /// <returns></returns> public static bool Decompile(IDecompileNodeContext context, Stream stream, string name) { if (stream == null || stream.Length > 500 * 1024) { return(false); } stream.Position = 0; FileType type = GuessFileType.DetectFileType(stream); if (type == FileType.Binary) { return(false); } stream.Position = 0; context.Output.Write(new StreamReader(stream, true).ReadToEnd(), BoxedTextColor.Text); string ext; if (type == FileType.Xml) { ext = ".xml"; } else { try { ext = Path.GetExtension(NameUtilities.CleanName(name)); } catch (ArgumentException) { ext = ".txt"; } } context.ContentTypeString = ContentTypesHelper.TryGetContentTypeStringByExtension(ext) ?? ContentTypes.PlainText; return(true); }
public void makeNameTestSpecialChars() { String example = "Knowles-Carter, Beyonce "; Name name = NameUtilities.makeName(example); Assert.AreEqual(name.First, "Beyonce"); Assert.AreEqual(name.Last, "Knowles-Carter"); }
public void makeNameTestFirstLast() { String example = "Knowles, Beyonce"; Name name = NameUtilities.makeName(example); Assert.AreEqual(name.First, "Beyonce"); Assert.AreEqual(name.Last, "Knowles"); }
/// <summary> /// Writes an event /// </summary> /// <param name="output">Output</param> /// <param name="language">Language</param> /// <param name="event">Event</param> /// <param name="showToken">true to write tokens</param> public void Write(ITextColorWriter output, ILanguage language, EventDef @event, bool showToken) { output.Write(TextColorHelper.GetColor(@event), NameUtilities.CleanIdentifier(@event.Name)); output.WriteSpace(); output.Write(BoxedTextColor.Punctuation, ":"); output.WriteSpace(); language.WriteType(output, @event.EventType, false); WriteToken(output, @event, showToken); }
/// <summary> /// Writes an event /// </summary> /// <param name="output">Output</param> /// <param name="decompiler">Decompiler</param> /// <param name="event">Event</param> /// <param name="showToken">true to write tokens</param> public void Write(ITextColorWriter output, IDecompiler decompiler, EventDef @event, bool showToken) { output.Write(decompiler.MetadataTextColorProvider.GetColor(@event), NameUtilities.CleanIdentifier(@event.Name)); output.WriteSpace(); output.Write(BoxedTextColor.Punctuation, ":"); output.WriteSpace(); decompiler.WriteType(output, @event.EventType, false); WriteToken(output, @event, showToken); }
/// <summary> /// Writes a field /// </summary> /// <param name="output">Output</param> /// <param name="language">Language</param> /// <param name="field">Field</param> /// <param name="showToken">true to write tokens</param> public void Write(ITextColorWriter output, ILanguage language, FieldDef field, bool showToken) { output.Write(TextColorHelper.GetColor(field), NameUtilities.CleanIdentifier(field.Name)); output.WriteSpace(); output.Write(BoxedTextColor.Punctuation, ":"); output.WriteSpace(); language.WriteType(output, field.FieldType.ToTypeDefOrRef(), false); WriteToken(output, field, showToken); }
/// <summary> /// Writes a field /// </summary> /// <param name="output">Output</param> /// <param name="decompiler">Decompiler</param> /// <param name="field">Field</param> /// <param name="showToken">true to write tokens</param> public void Write(ITextColorWriter output, IDecompiler decompiler, FieldDef field, bool showToken) { output.Write(decompiler.MetadataTextColorProvider.GetColor(field), NameUtilities.CleanIdentifier(field.Name)); output.WriteSpace(); output.Write(BoxedTextColor.Punctuation, ":"); output.WriteSpace(); decompiler.WriteType(output, field.FieldType.ToTypeDefOrRef(), false); WriteToken(output, field, showToken); }
public void makeNameTestOnlyFirst() { // This test fails - the makeName method throws an exception // The makeName method needs to be fixed String example = "Beyonce"; Name name = NameUtilities.makeName(example); Assert.AreEqual(name.First, "Beyonce"); Assert.AreEqual(name.Last, null); }
void DecompileUnknown(DocumentTreeNodeData node) { if (node is IDecompileSelf decompileSelf && !(decompileNodeContext is null)) { if (decompileSelf.Decompile(decompileNodeContext)) { return; } } decompiler.WriteCommentLine(output, NameUtilities.CleanName(node.ToString(decompiler))); }
/// <inheritdoc/> public virtual void WriteShort(IDecompilerOutput output, IDecompiler decompiler, bool showOffset) { decompiler.WriteCommentBegin(output, true); output.WriteOffsetComment(this, showOffset); const string LTR = "\u200E"; output.Write(NameUtilities.CleanName(Name) + LTR, this, DecompilerReferenceFlags.Local | DecompilerReferenceFlags.Definition, BoxedTextColor.Comment); output.Write($" = {ValueString}", BoxedTextColor.Comment); decompiler.WriteCommentEnd(output, true); output.WriteLine(); }
void DecompileUnknown(DocumentTreeNodeData node) { var decompileSelf = node as IDecompileSelf; if (decompileSelf != null && decompileNodeContext != null) { if (decompileSelf.Decompile(decompileNodeContext)) { return; } } decompiler.WriteCommentLine(output, NameUtilities.CleanName(node.ToString(decompiler))); }
/// <summary> /// Writes a file /// </summary> /// <param name="output">Output</param> /// <param name="decompiler">Decompiler</param> /// <param name="document">Document</param> public void Write(ITextColorWriter output, IDecompiler decompiler, IDsDocument document) { var filename = GetFilename(document); var peImage = document.PEImage; if (peImage != null) { output.Write(IsExe(peImage) ? BoxedTextColor.AssemblyExe : BoxedTextColor.Assembly, NameUtilities.CleanName(filename)); } else { output.Write(BoxedTextColor.Text, NameUtilities.CleanName(filename)); } }
/// <summary> /// Writes a file /// </summary> /// <param name="output">Output</param> /// <param name="language">Language</param> /// <param name="file">File</param> public void Write(ITextColorWriter output, ILanguage language, IDnSpyFile file) { var filename = GetFilename(file); var peImage = file.PEImage; if (peImage != null) { output.Write(IsExe(peImage) ? BoxedTextColor.AssemblyExe : BoxedTextColor.Assembly, NameUtilities.CleanName(filename)); } else { output.Write(BoxedTextColor.Text, NameUtilities.CleanName(filename)); } }
public override void WriteShort(IDecompilerOutput output, IDecompiler decompiler, bool showOffset) { if (output is IDocumentViewerOutput documentViewerOutput) { decompiler.WriteCommentBegin(output, true); output.WriteOffsetComment(this, showOffset); documentViewerOutput.AddUIElement(() => { return(new System.Windows.Controls.Image { Source = imageSource, }); }); output.Write(" = ", BoxedTextColor.Comment); const string LTR = "\u200E"; output.Write(NameUtilities.CleanName(Name) + LTR, this, DecompilerReferenceFlags.Local | DecompilerReferenceFlags.Definition, BoxedTextColor.Comment); decompiler.WriteCommentEnd(output, true); output.WriteLine(); return; } base.WriteShort(output, decompiler, showOffset); }
void Decompile(DerivedTypeNode node) => decompiler.WriteCommentLine(output, NameUtilities.CleanName(node.TypeDef.ReflectionFullName));
protected override void Write(ITextColorWriter output, IDecompiler decompiler) => output.Write(BoxedTextColor.AssemblyModule, NameUtilities.CleanIdentifier(module.Name));
void Decompile(IAssemblyReferenceNode node) => language.WriteCommentLine(output, NameUtilities.CleanName(node.AssemblyRef.ToString()));
protected override void Write(ITextColorWriter output, ILanguage language) => output.Write(BoxedTextColor.Module, NameUtilities.CleanIdentifier(module.Name));
/// <summary> /// Writes a module reference /// </summary> /// <param name="output">Output</param> /// <param name="decompiler">Decompiler</param> /// <param name="modRef">Module reference</param> /// <param name="showToken">true to write tokens</param> public void Write(ITextColorWriter output, IDecompiler decompiler, ModuleRef modRef, bool showToken) { output.Write(BoxedTextColor.Text, NameUtilities.CleanIdentifier(modRef.Name)); WriteToken(output, modRef, showToken); }
/// <summary> /// Writes an assembly reference /// </summary> /// <param name="output">Output</param> /// <param name="decompiler">Decompiler</param> /// <param name="asmRef">Assembly reference</param> /// <param name="showToken">true to write tokens</param> public void Write(ITextColorWriter output, IDecompiler decompiler, AssemblyRef asmRef, bool showToken) { output.Write(BoxedTextColor.Text, NameUtilities.CleanIdentifier(asmRef.Name)); WriteToken(output, asmRef, showToken); }
void Decompile(IBaseTypeNode node) => language.WriteCommentLine(output, NameUtilities.CleanName(node.TypeDefOrRef.ReflectionFullName));
/// <summary> /// Escapes text for <see cref="MenuItem"/> headers /// </summary> /// <param name="s"></param> /// <returns></returns> public static string EscapeMenuItemHeader(string s) => NameUtilities.CleanName(s) !.Replace("_", "__");
void Decompile(ModuleReferenceNode node) => decompiler.WriteCommentLine(output, NameUtilities.CleanName(node.ModuleRef.ToString()));
/// <remarks> /// TODO: Use UIUtilities.EscapeMenuItemHeader, see 0xd4d/dnSpy#1201 /// </remarks> public override string GetHeader(IMenuItemContext context) => NameUtilities .CleanName($"{Path.GetFileName(injectionArguments.Path)} {injectionArguments.TypeFull}.{injectionArguments.Method}({Quote(injectionArguments.Argument) ?? "null"})") .Replace("_", "__");