Skip to content
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

Show base members #3082

Closed
wants to merge 4 commits into from
Closed

Show base members #3082

wants to merge 4 commits into from

Conversation

miloush
Copy link
Contributor

@miloush miloush commented Sep 9, 2023

Problem

There isn't any way to show all members, including inherited, available on a type. This, for example, makes it slightly challenging to find out where a member that user knows about comes from.

Solution

  • Added View > Show base members setting stored in filter settings.
  • When the setting is on, the node concatenates NestedTypes, Fields, Properties, Events and Methods from the list of non-interface base types on the ITypeDefinition.
  • Searching is not affected, i.e. searching for "button.fontstyle" will not yield any results even when the setting is on. This could be added in the future if needed.
  • If expanded, a type node will reload children when the setting changes.

An alternative approach would be for the inheritance check to be part of the standard filtering. That might, however, slow down enumareting children considerably, as all inherited members would have to be checked each time.

Having a global setting is not necessary. If preferrable, we could only have explicit Show base members in context menu on individual type nodes that would only affect them on by one. The current approach felt simpler (and possibly allowing for the search to take the setting into account in the future).

@miloush

This comment was marked as outdated.

@miloush
Copy link
Contributor Author

miloush commented Sep 12, 2023

Not only GetMethods and GetMembers do not return constructors, but also GetConstructors does not return static ones. Decided for using the properties for consistency and concatenate them from base classes. I am now done with this PR until asked for changes.

@miloush miloush changed the title Show inherited members Show base members Sep 12, 2023
@siegfriedpammer
Copy link
Member

The team is not interested in adding such a feature. We strongly feel that there should be a 1 : 1 relationship between the metadata information and the tree view. Also, we'd like the normal decompilation and project decompilation to behave as similar as possible.

Thank you for your understanding!

@miloush
Copy link
Contributor Author

miloush commented Oct 8, 2023

No problem, thank you for your time checking this!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants