Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Can Eclipse hover tips display Doxygen comments from header file?

I'm using Eclipse CDT to write C++ code. Having read several discussions here on StackOverflow about whether to place doxygen documentation in the header file or the implementation file, it seems the majority of developers favour putting doxygen comments in the header file (although it's by no means a consensus, of course). However, if I put doxygen comments in my header files, I can't get Eclipse to display those comments when I hover the mouse pointer over an instance of the commented method/member. Is there a way to get Eclipse to make use of my Doxygen documentation from my header files in Eclipse's hover tips?

I've set "Documentation tool comments Workspace default" to "Doxygen" in Preferences > C/C++ > Editor.

I'm using Eclipse 3.6.2 with CDT 7.0.2 on Ubuntu 11.04.

like image 960
Jack Kelly Avatar asked Jun 23 '11 15:06

Jack Kelly


2 Answers

Doxygen comments are displayed in Eclipse on hover when written in:

  • cpp file (or header) file before method source (not declaration)
  • header file before class declaration
like image 146
Yuriy Petrovskiy Avatar answered Nov 01 '22 04:11

Yuriy Petrovskiy


I found a workaround for this problem, however it's pretty inconvenient for general use.

If you're using an external build system (make/cmake eg.) where eclipse is unable to pass on it's macro definitions, then all you need to do is place the implementation in it's own include guard and add the include guards macro to eclipse's symbol definitions. This will hide that section of code from eclipse, forcing it to use the intended comments without affecting the build.

For example:

#ifndef INCLUDE_GUARD_FOR_IMPLEMENTATION
#define INCLUDE_GUARD_FOR_IMPLEMENTATION

// Implementation code

#endif

and then in project -> properties -> C/C++ General -> Paths And Symbols add INCLUDE_GUARD_FOR_IMPLEMENTATION under the symbols section.

It does of course have the side effect of greying out the section, and if you can't or don't want to put the implementation code in a separate header it might look rather out of place.

like image 1
NotVeryMoe Avatar answered Nov 01 '22 05:11

NotVeryMoe