-
Notifications
You must be signed in to change notification settings - Fork 420
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Added support for decompilation based on ILSpy (similar to VS) #1751
Conversation
…EditorFeatures package
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
First round of quickly looking at the code. Great work!
src/OmniSharp.Roslyn.CSharp/Services/ExternalSourceServiceFactory.cs
Outdated
Show resolved
Hide resolved
src/OmniSharp.Roslyn.CSharp/Services/ExternalSourceServiceFactory.cs
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Seeing real code will be awesome!
src/OmniSharp.Roslyn.CSharp/Services/Decompilation/OmniSharpCSharpDecompiledSourceService.cs
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
src/OmniSharp.Roslyn.CSharp/Services/ExternalFeaturesHostServicesProvider.cs
Outdated
Show resolved
Hide resolved
src/OmniSharp.Roslyn.CSharp/Services/Decompilation/OmniSharpCSharpDecompiledSourceService.cs
Outdated
Show resolved
Hide resolved
…harpDecompiledSourceService.cs Co-Authored-By: Joey Robichaud <jorobich@microsoft.com>
…cesProvider.cs Co-Authored-By: Joey Robichaud <jorobich@microsoft.com>
ok, approved then I'm merging this |
This is implemented as a variation on the /gotodefinition and /metadata endpoints.
Setting the flag
RoslynExtensionsOptions:EnableDecompilationSupport
totrue
means the user opts into decompilation instead of metadata.The changeset is relatively big because I needed to refactor the existing metadata service and then matched the new decompilation logic to it, this way metadata services and decompilation are fully interchangeable.
No client changes needed and you can navigate from decompiled code to another symbol that needs to be decompiled (just like we support in metadata at the moment)
preview: http://g.recordit.co/9XaNkEE4lt.gif