rubberduck-vba / Rubberduck3

COM add-in for the VBIDE
GNU General Public License v3.0
84 stars 14 forks source link

Implement IntelliSense UI #17

Open retailcoder opened 1 year ago

retailcoder commented 1 year ago

The Rubberduck Editor needs an IntelliSense UI that appears relative to the caret position to display signature help.

We don't need to worry about the signature index because no members are ever overloaded in VBA, so we only need to ever accommodate a single signature: even in the context of a property call, once we're showing the signature info we've already worked out whether we're looking at the Get, Let, or Set member.

The tooltip should display the member's docstring, and support tracking the active parameter to show it in bold, and eventually show docstrings for individual parameters. The model comes straight from the LSP server.

There should be a key binding to dismiss the tooltip on ESC, and both showing and dismissing the tooltip should fire an EventTelemetry event.

Vogel612 commented 1 year ago

I would actually debate the claim that we only want to show a single member docstring... It seems fair to expect Rubberduck to understand that Get, Let and Set are property access behaviours that may or may not share description. Especially since we're actively promoting property encapsulation, I'd want at least trivial properties to possibly resolve to the backing member of a private type for the purposes of documentation...