mirror of
https://github.com/space-wizards/RobustToolbox.git
synced 2026-02-14 19:29:36 +01:00
dmetamem now sorts results, no longer outputs to log to avoid interleaving
This commit is contained in:
@@ -60,7 +60,7 @@ END TEMPLATE-->
|
||||
|
||||
### Internal
|
||||
|
||||
*None yet*
|
||||
* The `dmetamem` command now sorts its output, and doesn't output to log anymore to avoid output interleaving.
|
||||
|
||||
|
||||
## 267.3.0
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using System;
|
||||
using System.Linq;
|
||||
using Robust.Shared.Console;
|
||||
using Robust.Shared.ContentPack;
|
||||
|
||||
@@ -19,10 +20,28 @@ namespace Robust.Client.Console.Commands
|
||||
return;
|
||||
}
|
||||
|
||||
foreach (var sig in AssemblyTypeChecker.DumpMetaMembers(type))
|
||||
var members = AssemblyTypeChecker.DumpMetaMembers(type)
|
||||
.GroupBy(x => x.IsField)
|
||||
.ToDictionary(x => x.Key, x => x.Select(t => t.Value).ToList());
|
||||
|
||||
if (members.TryGetValue(true, out var fields))
|
||||
{
|
||||
System.Console.WriteLine(@$"- ""{sig}""");
|
||||
shell.WriteLine(sig);
|
||||
fields.Sort(StringComparer.Ordinal);
|
||||
|
||||
foreach (var member in fields)
|
||||
{
|
||||
System.Console.WriteLine(@$"- ""{member}""");
|
||||
}
|
||||
}
|
||||
|
||||
if (members.TryGetValue(false, out var methods))
|
||||
{
|
||||
methods.Sort(StringComparer.Ordinal);
|
||||
|
||||
foreach (var member in methods)
|
||||
{
|
||||
System.Console.WriteLine(@$"- ""{member}""");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@ namespace Robust.Shared.ContentPack
|
||||
{
|
||||
internal sealed partial class AssemblyTypeChecker
|
||||
{
|
||||
public static IEnumerable<string> DumpMetaMembers(Type type)
|
||||
public static IEnumerable<(string Value, bool IsField)> DumpMetaMembers(Type type)
|
||||
{
|
||||
var assemblyLoc = type.Assembly.Location;
|
||||
|
||||
@@ -58,7 +58,7 @@ namespace Robust.Shared.ContentPack
|
||||
var fieldName = metaReader.GetString(fieldDef.Name);
|
||||
var fieldType = fieldDef.DecodeSignature(provider, 0);
|
||||
|
||||
yield return $"{fieldType.WhitelistToString()} {fieldName}";
|
||||
yield return ($"{fieldType.WhitelistToString()} {fieldName}", IsField: true);
|
||||
}
|
||||
|
||||
foreach (var methodHandle in typeDef.GetMethods())
|
||||
@@ -79,7 +79,7 @@ namespace Robust.Shared.ContentPack
|
||||
? ""
|
||||
: $"<{new string(',', genericCount - 1)}>";
|
||||
|
||||
yield return $"{methodSig.ReturnType.WhitelistToString()} {methodName}{typeParamString}({paramString})";
|
||||
yield return ($"{methodSig.ReturnType.WhitelistToString()} {methodName}{typeParamString}({paramString})", IsField: false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user