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.91k stars 299 forks source link

Rubberduck should integrate help content #1053

Closed ThunderFrame closed 7 years ago

ThunderFrame commented 8 years ago

IMO, built-in help has been going downhill since Office 97, but 2013 and 2016, by default, force you to use online help. That's irritating, particularly when you hit F1 by mistake.

Integrating help content could draw in official and user-contributed content (OOP topics, :smile: )

This project looks like an opportunity.

ThunderFrame commented 8 years ago

Now that Rubberduck is collecting TypeInfos, and is context-aware of the selected symbol, or symbol under the cursor, we can launch a local copy of help (for VBA hosts that would otherwise force you to use online help), if the user has a copy of help available.

Offline help for Excel, Access, Word and PowerPoint is available for download from GitHub. Rubberduck could look for a local copy of help in the default path, or allow a user to define the locations of offline help files.

System.Windows.Forms.Help.ShowHelp allows us to launch a specified help-file at a specific topic. All we need is the helpfile from the TypeLibarary, the helpcontext ID from each TypeInfo member, and a mapping from the helpconext ID to the topic address.

I've worked out how to create the mapping from helpcontext ID to topic address, and how to launch help at the correct page.

If the Helpcontext IDs can be collected from TypeInfos, adding context-aware help should just be a matter of a assigning a hotkey and building the launch mechanisms.

Here's a mock-up: contexthelp

retailcoder commented 7 years ago

out of scope