CND69Doxygen
(→Doxygen Templates) |
|||
Line 8: | Line 8: | ||
===Overview=== | ===Overview=== | ||
+ | Target user is a C/C++ developer using the IDE for code development. Supporting Doxygen is a feature requested by many C/C++ CND developers. This feature aim to help documenting code as well as seamless integration with the code model for code completion and . | ||
+ | |||
# Support Doxygen at a similar level as Javadoc is supported by Java projects. | # Support Doxygen at a similar level as Javadoc is supported by Java projects. | ||
- | |||
# User builds and installs Doxygen application seperately. Doxygen is not distributed with NetBeans/CND. | # User builds and installs Doxygen application seperately. Doxygen is not distributed with NetBeans/CND. | ||
# Integrate Doxygen with C/C++ managed projects in a similar fashion Javadoc is integrated with Java projects supporting project properties and a run action to generate the documentation files. | # Integrate Doxygen with C/C++ managed projects in a similar fashion Javadoc is integrated with Java projects supporting project properties and a run action to generate the documentation files. | ||
# No direct support for Doxygen for unmanaged projects | # No direct support for Doxygen for unmanaged projects | ||
# Test and verify with Doxygen 1.6.2 available here http://www.stack.nl/~dimitri/doxygen/download.html#latestsrc | # Test and verify with Doxygen 1.6.2 available here http://www.stack.nl/~dimitri/doxygen/download.html#latestsrc | ||
+ | # Implement as plugin module using only public project SPIs/APIs. | ||
Questions: | Questions: | ||
- | # Is | + | # Is 6) possible? |
===User View=== | ===User View=== | ||
Line 43: | Line 45: | ||
====Actions==== | ====Actions==== | ||
- | Managed projects will be have a new action called ''Generate Doxygen''. It will run doxygen on the project files with the specified parameter and generate the output files in the "dist" folder | + | Managed projects will be have a new action called ''Generate Doxygen''. It will run doxygen on the project files with the specified parameter and generate the output files in the "dist" folder (default). |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
====Project Properties==== | ====Project Properties==== | ||
Line 56: | Line 54: | ||
Output (HTML, LaTeX, Man, Rich Text, XML) | Output (HTML, LaTeX, Man, Rich Text, XML) | ||
Diagrams | Diagrams | ||
- | + | ||
- | + | Only the most common/useful options are supported but a 'catch-all' blank text field can be used to specify any doxygen option. This is similar to the ''Add Additional Options'' compilers and linker have. It is TBD exactly which properties will be directly supported by the GUI. | |
- | + | ||
- | + | ||
====Integration with Code Completion==== | ====Integration with Code Completion==== | ||
Line 65: | Line 61: | ||
====Doxygen Code Templates==== | ====Doxygen Code Templates==== | ||
- | + | Support commen Doxygen templates for easily adding Doxygen command to source files (see https://netbeans.org/bugzilla/show_bug.cgi?id=171326) | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
====Typical Workflow==== | ====Typical Workflow==== | ||
Line 75: | Line 67: | ||
# He modifies the Doxygen project properties to suit he needs | # He modifies the Doxygen project properties to suit he needs | ||
# He runs the "Generate Doxygen" action from the project context menu | # He runs the "Generate Doxygen" action from the project context menu | ||
- | # He picks up the documentation in dist/.../doxygen | + | # Two usages: |
+ | ## Using code completion now shows proper documentation for classes, methods, ... | ||
+ | ## He picks up the generated documentation in dist/.../doxygen for external use | ||
===Doxygen GUI frontend (Mac)=== | ===Doxygen GUI frontend (Mac)=== |
Revision as of 09:56, 20 January 2010
Contents |
CND 69 Doxygen
Doxygen is a tool to convert your C++ comments into publishable HTML. It works by extracting commentary directly from the source with the help of a special Doxygen syntax.
Team
- Dev: Thomas Preisler
- Lead: Vladimir Voskresensky
Overview
Target user is a C/C++ developer using the IDE for code development. Supporting Doxygen is a feature requested by many C/C++ CND developers. This feature aim to help documenting code as well as seamless integration with the code model for code completion and .
- Support Doxygen at a similar level as Javadoc is supported by Java projects.
- User builds and installs Doxygen application seperately. Doxygen is not distributed with NetBeans/CND.
- Integrate Doxygen with C/C++ managed projects in a similar fashion Javadoc is integrated with Java projects supporting project properties and a run action to generate the documentation files.
- No direct support for Doxygen for unmanaged projects
- Test and verify with Doxygen 1.6.2 available here http://www.stack.nl/~dimitri/doxygen/download.html#latestsrc
- Implement as plugin module using only public project SPIs/APIs.
Questions:
- Is 6) possible?
User View
Project Logical View
No changes.
Project Physical View
Default output to project dist folder
Project dist Debug GNU-MacOS doxygen html man richtext xml latex
Output directory can be controlled by a property.
Make Target
Makefiles will have a new make target called doxygen so the Doxygen files can be generated from the command line.
Actions
Managed projects will be have a new action called Generate Doxygen. It will run doxygen on the project files with the specified parameter and generate the output files in the "dist" folder (default).
Project Properties
Many aspects of the generated doxygen files can be controlled by a set of configuration specific project properties. No details yet, but a good start is the settings from the Doxygen GUI frontend MacOS wizard from below. Not all properties are neccessary. Things like file suffixes are controlled by other properties. Here is a list of some of the more important ones:
Project Name Project Version Output Directory Output (HTML, LaTeX, Man, Rich Text, XML) Diagrams
Only the most common/useful options are supported but a 'catch-all' blank text field can be used to specify any doxygen option. This is similar to the Add Additional Options compilers and linker have. It is TBD exactly which properties will be directly supported by the GUI.
Integration with Code Completion
Integrate html Doxygen docs with code completion.
Doxygen Code Templates
Support commen Doxygen templates for easily adding Doxygen command to source files (see https://netbeans.org/bugzilla/show_bug.cgi?id=171326)
Typical Workflow
- User adds Doxygen commands to source files
- He modifies the Doxygen project properties to suit he needs
- He runs the "Generate Doxygen" action from the project context menu
- Two usages:
- Using code completion now shows proper documentation for classes, methods, ...
- He picks up the generated documentation in dist/.../doxygen for external use
Doxygen GUI frontend (Mac)
Resources
IZ:
https://netbeans.org/bugzilla/show_bug.cgi?id=178882
Tutorial:
http://www.stack.nl/~dimitri/doxygen/starting.html
http://www-scf.usc.edu/~peterchd/doxygen/
http://class.ee.iastate.edu/cpre288/lectures_files/Doxygen%20Tutorial.pdf
Project:
http://sourceforge.net/projects/doxygen/
http://www.stack.nl/~dimitri/doxygen/
Latest sources:
http://www.stack.nl/~dimitri/doxygen/download.html#latestsrc
Schedule
Milestone | Date | Content |
---|---|---|
1 | 1/18/10 | User View Ready |
2 NB 6.9 M1 Release | 2/24/10 | |
3 | 3/05/10 | Feature useful |
4 NB 6.9 Feature Freeze | 3/08/10 | Feature complete |
5 NB 6.9 Code Freeze | 4/16/10 | Done, all P1/2 bugs fixed. |