rubberduck-vba / Rubberduck

Every programmer needs a rubberduck. COM add-in for the VBA & VB6 IDE (VBE).
https://rubberduckvba.com
GNU General Public License v3.0
1.92k stars 302 forks source link

Build a better Object Browser #1093

Open ThunderFrame opened 8 years ago

ThunderFrame commented 8 years ago

Object Browser deficiencies

It could be better...

retailcoder commented 8 years ago

Woah, that's some shopping list!

About these:

Any idea for how else to represent them?

Also..

Not sure what that means. It's constant, per language specs / scoping rules.

And:

Needs a formal spec, no idea what this means ;-)

A lot of these items require processing module and member attributes, which is on the roadmap but not implemented yet. Overall I like the idea of a better object browser, but a lot of these ideas need to be fleshed up, this issue is pretty much a project on its own!

ThunderFrame commented 8 years ago

It was more a moan about deficiencies in the current Object Explorer, than a shopping list...

The hard part is collecting the data, once you have that it just needs to be in a listview that supports sorting/grouping/filtering.

Re: Hidden/Default/Built-in/Custom... It's easier to sort/filter on a column value than sort/filter a font color/weight or icon.

Order of scope. Let's say I create a member called Range or GetObject. If I'm viewing All Libraries then I'd like to see the members from my project, and any/all of the referenced libraries in my search. If a member is in my project and in one or more referenced library/project, then I'd like a numeric column indicating the scope priority. If it's 1, then I know I can use it without an explicit library prefix, but if it's >1, then I need to explicitly reference the library name.

I'd like to be able to look at, for example, the parameter names, types and default values for any 2 methods, side by side.

Vogel612 commented 8 years ago

What in the world is "Write-Only Properties"???

retailcoder commented 8 years ago

@Vogel612 a property that only exposes a setter. There's already an inspection for that, flagging it as a design smell.

ThunderFrame commented 8 years ago

I've seen write-only properties used for Passwords, but they are better dealt with in a method.

ThunderFrame commented 8 years ago

Object Browser doesn't show Alias details, or underlying method. Eg. Left function.