What's new in dotPeek
XML Doc comments for platform assemblies, including assemblies with names that differ from the names of the XML documentation files (for example
XML documentation in decompiled / metadata view file header.
Forwarded types in the Assembly Explorer window
Locate in Metadata action now also works for forwarded types, assembly/module references, and resources
Improved PDB navigation (sources from symbol files) for types without sequence points such as interfaces and enums.
Ability to disable retargeting in Metadata view navigation.
Metadata tree improvements: decoded + raw blob presentation in Properties window
By default, all new documents are displayed in the preview tab.
Improved UX for finding text in the current document (Ctrl+F).
Decompiler improvements: support for async disposable, records, and record structs
Single-file/native support improvements:
Ability to open non-assembly bundled files and files inside the App Host node, for example .runtimeconfig.json.
Ability to extract bundle file entry to file and extract bundle content to folder
Assembly info for native app host (assembly info of corresponding managed assembly)
Bundle info for single-file app (list of embedded files, header format version, ID)
Reworked UI and a new shortcut Control+Alt+Shift+C for copying code references.
Highlighting of logical and conditional operators under the caret.
Single-file apps support (executables published with the 'Produce single file' option, both self-contained and framework dependent) for .NET Core 3.0, .NET 5, and .NET 6 preview (bundle header version 1.0, 2.0 and 6.0).
Bundle header node inside Metadata subtree for single-file bundles.
Platform-specific executables (app host; 'Produce single file' false) can be added to the Assembly explorer. The corresponding managed assembly will be shown inside the app host node.
Async streams support (
await foreach) are supported by the decompiler.
Color coding of code viewer tabs according to their code presentation mode.
Code style options for decompiled code.
Decompiler improvements: Static local functions, top-level statements, attributes on local functions, readonly instance members on structs.
IL Viewer: improvements in synchronization and context highlighting.
Assembly Explorer window: top-level entry point item (presentation, double-click/context menu navigation, properties).
Metadata tree: add containing type info to presentation of metadata token nodes if this info is not evident.
Go To Metadata Token: improved item presentation (token; origin assembly for *Ref tokens).
A new action to locate symbols in metadata tree.
Decompiler: support of expression-bodied members, throw expressions, default parameters, and named arguments.
Decompiler: improved tuple component names support.
Decompiler: nullable reference types (in declarations, not in method bodies).
Decompiler: default interface members.
Decompiler: field-targeted attributes for auto-implemented properties and field-like events.
IL View: support for custom attributes in interface implementations and generic parameter constraints (for example, the compiler can apply
TupleElementNamesAttributeto these entities).
Decompilation of tuples, deconstruction, discards.
Tooltips with keyword description in IL Viewer
Go to File Member now also searches for textual matches in the current document.
Win32 resources subtree in Assembly Explorer window
Metadata tree improvements: description for unmanaged (win32) resources directories and entries (type, language), description for section headers.
Metadata tree improvements:
Navigation to source from a document token node (portable pdb subtree).
Navigation to pdb content .xml from a portable pdb subtree root node.
Navigation to nuspec (double-click a nuget node in the Assembly Explorer window)
Dependencies node for NuGet package in the Assembly Explorer window.
Local functions decompilation (C# 7.0)
Pattern matching decompilation: const pattern, type pattern, type patterns in the case clauses (predicates and discards are supported) (C# 7.0)
System.Delegateand unmanaged constraints (C# 7.3)
fixedfields indexing without pinning (C# 7.3)
Decompilation support for the following C# constructs:
Indexer (dictionary) initializers
Metadata tee improvements:
Metadata subtree (headers / directories) for files that are not supported by the decompiler.
Improved presentation and new filed descriptions in headers.
Absolute offsets for metadata tables, metadata table rows, heap items (the offsets are displayed in the Properties window).
File description (Version Info) for assemblies in the Properties window.
If any of the navigation and search commands results in multiple matches inside a single method, dotPeek now displays all of them in the search results .
The results of Search Everywhere Control+N now include occurrences of the search query in strings.
Improvements in Go to String Ctrl+Alt+T: search in attributes, better presentation and navigation directly to the search query occurrence in long and multiline strings.
More features for Portable PDB in the Metadata tree.
Proper decompilation of
Improvements and fixes for displaying and navigating IL code.
Metadatanode in the Assembly Explorer helps explore assembly metadata.
dotPeek automatically highlights usages of the symbol under the caret.
Extension methods rendered as instance methods in decompiled code.
Viewing intermediate language (IL) side by side with decompiled C# code.
Find Usages works asynchronously, letting you keep on working with the decompiler while it executes time consuming usage search in the background.
dotPeek supports the same set of color themes as that of Visual Studio with the ability to synchronize your color scheme preference with Visual Studio settings.
Usage-aware behavior of the Go to Declaration command.
Ability to decompile assemblies build with Roslyn
Ability to decompile the following C# 6.0 features: exception filters, auto-properties with initializers
Ability to display metadata tokens in the Assembly Explorer and as comments in decompiled code.
Ability to navigate to metadata tokens.
Go to String command now lets you find string literals in constant string fields and in default values of string parameters.
Navigate to Exposing API command that allows you to navigate from a type to all places in the currently loaded assemblies where you can get an instance of this type.
Go to String command.
Go to Action command that helps you quickly find and apply any of dotPeek's actions.
Ability to search preferences in the Options dialog
Ability to generate PDB files for .NET assemblies which were compiled with the
Process Explorer window that provides you with the list of currently running processes and allows exploring their modules and decompiling those of them that are .NET assemblies.