Browse Source

decompile base & derived types in place

pull/3081/head
miloush 2 years ago
parent
commit
421865acc7
  1. 2
      ILSpy/TreeNodes/BaseTypesEntryNode.cs
  2. 3
      ILSpy/TreeNodes/BaseTypesTreeNode.cs
  3. 2
      ILSpy/TreeNodes/DerivedTypesEntryNode.cs
  4. 10
      ILSpy/TreeNodes/DerivedTypesTreeNode.cs

2
ILSpy/TreeNodes/BaseTypesEntryNode.cs

@ -58,7 +58,7 @@ namespace ICSharpCode.ILSpy.TreeNodes @@ -58,7 +58,7 @@ namespace ICSharpCode.ILSpy.TreeNodes
public override void Decompile(Language language, ITextOutput output, DecompilationOptions options)
{
language.WriteCommentLine(output, language.TypeToString(type, includeNamespace: true));
language.DecompileType(type, output, options);
}
IEntity IMemberTreeNode.Member => type;

3
ILSpy/TreeNodes/BaseTypesTreeNode.cs

@ -71,7 +71,8 @@ namespace ICSharpCode.ILSpy.TreeNodes @@ -71,7 +71,8 @@ namespace ICSharpCode.ILSpy.TreeNodes
App.Current.Dispatcher.Invoke(DispatcherPriority.Normal, new Action(EnsureLazyChildren));
foreach (ILSpyTreeNode child in this.Children)
{
child.Decompile(language, output, options);
if (child is IMemberTreeNode { Member: ITypeDefinition childType })
language.WriteCommentLine(output, language.TypeToString(childType, includeNamespace: true));
}
}
}

2
ILSpy/TreeNodes/DerivedTypesEntryNode.cs

@ -96,7 +96,7 @@ namespace ICSharpCode.ILSpy.TreeNodes @@ -96,7 +96,7 @@ namespace ICSharpCode.ILSpy.TreeNodes
public override void Decompile(Language language, ITextOutput output, DecompilationOptions options)
{
language.WriteCommentLine(output, language.TypeToString(type, includeNamespace: true));
language.DecompileType(type, output, options);
}
IEntity IMemberTreeNode.Member => type;

10
ILSpy/TreeNodes/DerivedTypesTreeNode.cs

@ -16,9 +16,11 @@ @@ -16,9 +16,11 @@
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Windows.Threading;
using ICSharpCode.Decompiler;
using ICSharpCode.Decompiler.TypeSystem;
@ -101,7 +103,13 @@ namespace ICSharpCode.ILSpy.TreeNodes @@ -101,7 +103,13 @@ namespace ICSharpCode.ILSpy.TreeNodes
public override void Decompile(Language language, ITextOutput output, DecompilationOptions options)
{
threading.Decompile(language, output, options, EnsureLazyChildren);
App.Current.Dispatcher.Invoke(DispatcherPriority.Normal, new Action(EnsureLazyChildren));
for (int i = 0; i < Children.Count; i++)
{
// LazyChildren are async and will not be ready on first call, avoid foreach.
if (Children[i] is IMemberTreeNode { Member: ITypeDefinition childType })
language.WriteCommentLine(output, language.TypeToString(childType, includeNamespace: true));
}
}
}
}
Loading…
Cancel
Save