EWSoftware / SHFB

Sandcastle Help File Builder (SHFB). A standalone GUI, Visual Studio integration package, and MSBuild tasks providing full configuration and extensibility for building help files with the Sandcastle tools.
Other
2.19k stars 368 forks source link

MRefBuilderAddIn #951

Open uecasm opened 2 years ago

uecasm commented 2 years ago

It would be nice if some documentation were added and/or the process of using them made simpler for custom MRefBuilderAddIns, especially since there now seems to be two different versions of it (for Framework vs Core).

FWIW, I use one to extract some info from custom attributes, which are later used by a syntax generator.

I did manage to get mine working under the new system, using a somewhat similar approach as for configuration UIs -- the addin itself is a plain non-nuget dual-build project and then I have a plugin nuget which embeds the files and configures them to execute. I could provide more details and snippets if that would be helpful, though not the complete source. (And I haven't tested it for Core builds, though it theoretically should work.)

EWSoftware commented 2 years ago

Up to now, I wasn't aware of anyone creating MRefBuilder add-ins so I haven't done anything with them as there didn't seem to be much point in expending a lot of effort to rework the code to create a NuGet package and use MEF to make them like the other components and plug-ins.

If you could provide the details and examples to show what you're after, I'll see what I can do towards simplifying usage or at least documenting how they are implemented and used.

uecasm commented 2 years ago

Most of what I was doing probably could be sufficiently done by adding attributes to the MRefBuilder local config's filter list via plugin (I have to mess with that config to add the extra plugin anyway) -- it's mostly about detecting that certain attributes are present on the class or methods and interpreting their content accordingly. Although my builder plugin tacks on some additional XML elements with just the interesting bits of data from the attributes rather than the full spiel. (I'm not sure if that attribute filter wasn't there in the older version or if I just didn't notice it before doing my own extraction.)