CND69Doxygen

Revision as of 12:27, 22 January 2010 by Thp (Talk | contribs)

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

Supporting Doxygen is a feature requested by many C/C++ CND developers. Target user is a C/C++ developer using the IDE for code development (Leon & Steven) but may also be somewhat useful for sustaining tasks (Antony). This feature is aiming to make the developer more productive by providing useful code documentation in the editor associated with the code completion feature. Overview:

  1. Support Doxygen at a similar level as Javadoc is supported by Java projects.
  2. User builds and installs Doxygen application seperately. Doxygen is not distributed with NetBeans/CND.
  3. 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.
  4. No direct support for Doxygen for unmanaged projects
  5. Test and verify with Doxygen 1.6.2 available here http://www.stack.nl/~dimitri/doxygen/download.html#latestsrc
  6. Implement as plugin module using only public project SPIs/APIs.


Questions:

  1. Is 6) possible?

User View

Project Logical View

Generated documentation files added to Important Files:

Project
  Header Files
  ResourceFiles
  Source Files
  Important Files
    Doxygen
      html
      man
      richtext
      xml
      latex

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. Generated documentation (html, man, ...) depends on actual properties.

Make Target

Makefiles will have a new make target called doxygen. The Doxygen files can be generated from the command line with the command "make doxygen".

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. If html output is chosen, code completion will automatically pick up the generated html documentation and present it in the code completion pop-up choice dialog.

File:codecompletion.jpg

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

  1. User adds Doxygen commands to source files
  2. He modifies the Doxygen project properties to suit he needs
  3. He runs the "Generate Doxygen" action from the project context menu
  4. Two usages:
    1. Using code completion now shows proper documentation for classes, methods, ...
    2. He picks up the generated documentation in dist/.../doxygen for external use

Doxygen GUI frontend (Mac)

File:doxygen1.jpg File:doxygen2.jpg File:doxygen3.jpg File:doxygen4.jpg File:doxygen5.jpg File:doxygen6.jpg

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.doxygen.org

http://www.stack.nl/~dimitri/doxygen/

Latest sources:

http://www.stack.nl/~dimitri/doxygen/download.html#latestsrc

I have started experimenting with documentation in C/C++ code completion. The code is in the pelmel project: http://kenai.com/projects/pelmel in the NB6.8 repository: http://kenai.com/projects/pelmel/sources/nb68/show in module "cnd"/"Extended C/C++ Editor". The module can be installed from this update center: http://lahoda.info/hudson/job/pelmel68/lastSuccessfulBuild/artifact/build/updates/updates.xml.gz Note that the module requires a very recent trunk build.

Schedule

Milestone Date Content
1 1/18/10 User View Ready
2 3/15/10 Feature useful
3 NB 6.9 M1 4/07/10
4 NB 6.9 Beta 4/28/10 Feature complete
5 NB 6.9 Code Freeze 5/24/10 Done, all P1/2 bugs fixed.
Not logged in. Log in, Register

By use of this website, you agree to the NetBeans Policies and Terms of Use. © 2012, Oracle Corporation and/or its affiliates. Sponsored by Oracle logo