After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 364541 - patch improving parsing and documentation of .NET programs (C#, C++/CLI)
patch improving parsing and documentation of .NET programs (C#, C++/CLI)
Status: RESOLVED OBSOLETE
Product: doxygen
Classification: Other
Component: general
1.5.3-SVN
Other Cygwin
: Normal normal
: ---
Assigned To: Dimitri van Heesch
Dimitri van Heesch
[moved_to_github]
Depends on:
Blocks:
 
 
Reported: 2006-10-23 20:30 UTC by Ben Voigt
Modified: 2018-07-30 10:52 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
doxygen_parse_c++cli.patch (24.73 KB, patch)
2006-10-23 20:37 UTC, Ben Voigt
none Details | Review
doxygen_parse_c++cli.patch (24.20 KB, patch)
2006-10-23 20:48 UTC, Ben Voigt
none Details | Review
doxygen_parse_c++cli.patch (24.20 KB, patch)
2006-10-23 20:49 UTC, Ben Voigt
none Details | Review
Proposed Patch for the Doxywizard (1.30 KB, patch)
2006-12-07 06:38 UTC, Kevin McBride
none Details | Review

Description Ben Voigt 2006-10-23 20:30:35 UTC
This patch improves the parser so that it no longer mistakes keywords for the class name, recognizes C++/CLI properties and events, and understands the "internal" visibility used by .NET.
Comment 1 Ben Voigt 2006-10-23 20:37:51 UTC
Created attachment 75265 [details] [review]
doxygen_parse_c++cli.patch

Again, this patch is tested with a complex C++/CLI program, and is taken from a much larger set of changes working against a huge .NET application with C#, C++, C, C++/CLI and additional dot graphs.
Comment 2 Ben Voigt 2006-10-23 20:48:32 UTC
Created attachment 75267 [details] [review]
doxygen_parse_c++cli.patch

The other one had some cvs diff junk at the top that wasn't related.
Comment 3 Ben Voigt 2006-10-23 20:49:09 UTC
Created attachment 75268 [details] [review]
doxygen_parse_c++cli.patch

Now I obsolete everything properly.
Comment 4 Ivan Vecerina 2006-10-25 08:17:02 UTC
Just a comment to support the importance of this bug/patch for Windows C++ developers.  There is an increasing push for C++ developers on Windows to be using the C++/CLI extensions - as this makes it possible to use the .NET framework (much better GUI/dialog editor, etc).
Our team would very much like to see this patch integrated into doxygen...
Comment 5 Ben Voigt 2006-10-25 14:31:33 UTC
I have a couple more updates related to finalizers and \copydoc, if you use those let me know and I'll make a new patch.  Meanwhile my project lead wants some new functionality implemented so documentation (and therefore any work on doxygen) gets delayed yet again...

But please do try out the patch and let me know if you have any code that confuses it.
Comment 6 Dimitri van Heesch 2006-11-05 18:49:16 UTC
Hi Ben,

I noticed that a large part of your patch deals with adding support for the "internal" access-specifier. I've been reading through the C++/CLI standard (which has little to do with "real" C++ by the way) to see how this is used and noticed there are two more possible access-specifiers (see section 34.7.2) 
The total list is:

1) private
2) protected
3) public
4) internal
5) protected public      OR     public protected
6) protected private     OR     private protected

So I think we should either support them all or not.

The semantics of internal seem equivalent to package scope in Java...

Comment 7 Ben Voigt 2006-11-06 02:34:16 UTC
At first glance, internal looks the same as package, but it's not.  I guess you could say it's what package should have been.

For Java's package visibility, you can join someone else's package and get access to "package" variables and methods.  .NET's internal visibility is limited by the physical presence of the code within the .DLL, not the logical namespace.  In fact, most .NET assemblies end up with "XYZ.Internals" namespaces and classes to tuck away helper functions into.

You're right that the other two visibility layers should probably be added as well (though they're not available from C#).

It's all a great hack because .NET doesn't support the C++ idea of friend.  And then there's the InternalsVisibleToAttribute.

I'd actually consider it quite reasonable to ditch the separate blocks for internal in the documentation and just look at the INTERNAL_DOCS config setting.  If it's set, treat internal as public, protected public as public, and private protected as protected, while if INTERNAL_DOCS is false, treat internal as private, protected public as protected, and private protected as private.
Comment 8 Kevin McBride 2006-12-07 06:03:25 UTC
doxywizard is having a problem setting the new CPP_CLI_SUPPORT flag.  We'll need to fix that also.

This issue was initially brought up by a subscriber from our doxygen-users mailing list.
Comment 9 Kevin McBride 2006-12-07 06:38:58 UTC
Created attachment 77874 [details] [review]
Proposed Patch for the Doxywizard

This patch should fully add the CPP_CLI_SUPPORT option from the doxywizard's wizard.
Comment 10 Dimitri van Heesch 2007-01-07 14:23:33 UTC
Kevin what is the exact problem with doxywizard w.r.t. the CPP_CLI_SUPPORT flag? 

I don't think it is a good idea to couple the CPP_CLI_SUPPORT to the C# output option, since C# and C++/CLI are different languages.
Comment 11 André Klapper 2018-07-30 10:52:03 UTC
As discussed in https://github.com/doxygen/doxygen/pull/734 , Doxygen has moved its issue tracking to 

   https://github.com/doxygen/doxygen/issues

All Doxygen tickets in GNOME Bugzilla have been migrated to Github. You can subscribe and participate in the new ticket in Github. You can find the corresponding Github ticket by searching for its Bugzilla ID (number) in Github.

Hence I am closing this GNOME Bugzilla ticket.
Please use the corresponding ticket in Github instead. Thanks a lot!