Added project plan to SVN
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/branches/gsoc2012-doxygen@13267 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
b3f53b98a0
commit
db3b39bc85
1 changed files with 285 additions and 0 deletions
285
Doc/Devel/plan-gsoc-2012.txt
Normal file
285
Doc/Devel/plan-gsoc-2012.txt
Normal file
|
|
@ -0,0 +1,285 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
This document describes goals for the Google Summer of Code 2012,
|
||||||
|
SWIG code documentation project.
|
||||||
|
|
||||||
|
Author: Marko Klopcic
|
||||||
|
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
============
|
||||||
|
|
||||||
|
The goal of this project is _not_ to translate _any_ possible doxygen
|
||||||
|
formatted comment to JavaDoc or PyDoc, but to make it possible to
|
||||||
|
translate a subset of comment types in C/C++ code to
|
||||||
|
JavaDoc and PyDoc. Covering all the Doxygen functionality would be to
|
||||||
|
complex for the limited time. Hovewer, the code must be extendable so
|
||||||
|
that implementing missing features would not require redesign of the
|
||||||
|
comment handling code in SWIG.
|
||||||
|
|
||||||
|
There will also be a possiblity to add untranslated comments to Java
|
||||||
|
and Python code (## comments, see Doxygen manual), if the user will
|
||||||
|
prefer to use Doxygen on the generated code.
|
||||||
|
|
||||||
|
Abbreviations:
|
||||||
|
JD - JavaDoc
|
||||||
|
PD - PyDoc
|
||||||
|
|
||||||
|
|
||||||
|
Functionality
|
||||||
|
=============
|
||||||
|
|
||||||
|
Types of comments
|
||||||
|
-----------------
|
||||||
|
|
||||||
|
Note:
|
||||||
|
See 'http://www.stack.nl/~dimitri/doxygen/docblocks.html' for
|
||||||
|
the detailed description of Doxygen syntax and terms used in this
|
||||||
|
section.
|
||||||
|
|
||||||
|
1. Only JavaDoc (/** */) and Qt (/*! */) styles of comment blocks
|
||||||
|
will be supported by SWIG translator.
|
||||||
|
|
||||||
|
2. The following doc after members will be supported:
|
||||||
|
|
||||||
|
int var; ///< Detailed description after the member
|
||||||
|
//!<
|
||||||
|
|
||||||
|
int var; //!< Brief description after the member
|
||||||
|
|
||||||
|
int var; ///< Brief description after the member
|
||||||
|
|
||||||
|
3. Only comments before or after declaration/definition will be
|
||||||
|
supported. Comments with structural commands will be ignored
|
||||||
|
(warning will be written). (What about writing them to
|
||||||
|
'package.info.java' for JD?)
|
||||||
|
|
||||||
|
|
||||||
|
Tags
|
||||||
|
----
|
||||||
|
|
||||||
|
This section contains all doxygen tags taken from
|
||||||
|
http://www.stack.nl/~dimitri/doxygen/commands.html. If a tag is
|
||||||
|
marked as 'ignored', then the tag is ignored, but the text is copied
|
||||||
|
to the destination documentation.
|
||||||
|
|
||||||
|
Supported:
|
||||||
|
|
||||||
|
\a - translated to <i></i> in JD, surrounded with _ in PD
|
||||||
|
\addindex - ignored
|
||||||
|
\addtogroup - ignored
|
||||||
|
\anchor - ignored, not supported by JD and PD
|
||||||
|
\arg - translated to @param in JD, special formatting in PD
|
||||||
|
\attention - ignored, content printed out
|
||||||
|
\authors, \author - translated to @author in JD, 'Author:' in PD
|
||||||
|
\b - <b></b> in JD, surrounded with __ in PD
|
||||||
|
\brief - ignored, content printed out
|
||||||
|
\bug - ignored, content printed out
|
||||||
|
\c - translated to <code></code> in JD, ignored in PD
|
||||||
|
\callgraph - ignored, not supported by JD and PD
|
||||||
|
\callergraph - ignored, not supported by JD and PD
|
||||||
|
\category - ignored, used only in Objective C
|
||||||
|
\cite - translated to <i></i> in JD, single quotes in PD
|
||||||
|
\class - ignored (structural command)
|
||||||
|
\code - translated to <code></code> in JD, ignored in PD
|
||||||
|
\cond - translated to 'Conditional comment: <condition>'. Later
|
||||||
|
SWIG may support definitions of conditions in config file.
|
||||||
|
\copybrief - ignored. Later SWIG may support this command by
|
||||||
|
performing copy
|
||||||
|
\copydetails - ignored. Later SWIG may support this command by
|
||||||
|
performing copy
|
||||||
|
\copydoc - ignored. Later SWIG may support this command by
|
||||||
|
performing copy
|
||||||
|
\copyright - replaced with text 'Copyright' in PD and PD
|
||||||
|
\date - ignored, content printed out
|
||||||
|
\def
|
||||||
|
\defgroup
|
||||||
|
\deprecated - translated to @deprecated in JD, 'Deprecated:' in PD
|
||||||
|
\details - ignored, content printed out
|
||||||
|
\dir - not supported
|
||||||
|
\dontinclude - not supported
|
||||||
|
\dot - not supported. Later SWIG may call dot and produce the graph image to include in JD and PD
|
||||||
|
\dotfile - see note for \dot
|
||||||
|
\e - translated to <i></i> in JD
|
||||||
|
\else - see note for \cond
|
||||||
|
\elseif - see note for \cond
|
||||||
|
\em - translated to <em></em> in JD
|
||||||
|
\endcode - see note for \code
|
||||||
|
\endcond - translated to 'End of conditional comment: <condition>'. Later
|
||||||
|
SWIG may support definitions of conditions in config file.
|
||||||
|
\enddot - see note for \dot
|
||||||
|
\endhtmlonly - not supported
|
||||||
|
\endif - see note for \cond
|
||||||
|
\endinternal - not supported
|
||||||
|
\endlatexonly - not supported
|
||||||
|
\endlink - see note for \link
|
||||||
|
\endmanonly - not supported
|
||||||
|
\endmsc - see note for \msc
|
||||||
|
\endrtfonly - not supported
|
||||||
|
\endverbatim - see note for \verbatim
|
||||||
|
\endxmlonly - not supported
|
||||||
|
\enum - ignored (structural command)
|
||||||
|
\example - translated to 'Example:' in JD and PD
|
||||||
|
\exception - equivalent to throws
|
||||||
|
\extends - not supported
|
||||||
|
\f$
|
||||||
|
\f[
|
||||||
|
\f]
|
||||||
|
\f{
|
||||||
|
\f}
|
||||||
|
\file
|
||||||
|
\fn
|
||||||
|
\headerfile
|
||||||
|
\hideinitializer
|
||||||
|
\htmlinclude
|
||||||
|
\htmlonly
|
||||||
|
\if
|
||||||
|
\ifnot
|
||||||
|
\image
|
||||||
|
\implements
|
||||||
|
\include
|
||||||
|
\includelineno
|
||||||
|
\ingroup
|
||||||
|
\internal
|
||||||
|
\invariant
|
||||||
|
\interface
|
||||||
|
\latexonly
|
||||||
|
\li
|
||||||
|
\line
|
||||||
|
\link
|
||||||
|
\mainpage
|
||||||
|
\manonly
|
||||||
|
\memberof
|
||||||
|
\msc
|
||||||
|
\mscfile
|
||||||
|
\n
|
||||||
|
\name
|
||||||
|
\namespace
|
||||||
|
\nosubgrouping
|
||||||
|
\note
|
||||||
|
\overload
|
||||||
|
\p
|
||||||
|
\package
|
||||||
|
\page
|
||||||
|
\par
|
||||||
|
\paragraph
|
||||||
|
\param
|
||||||
|
\post
|
||||||
|
\pre
|
||||||
|
\private
|
||||||
|
\privatesection
|
||||||
|
\property
|
||||||
|
\protected
|
||||||
|
\protectedsection
|
||||||
|
\protocol
|
||||||
|
\public
|
||||||
|
\publicsection
|
||||||
|
\ref - ignored, not supported by JD and PD
|
||||||
|
\related
|
||||||
|
\relates
|
||||||
|
\relatedalso
|
||||||
|
\relatesalso
|
||||||
|
\remark
|
||||||
|
\remarks
|
||||||
|
\result
|
||||||
|
\return
|
||||||
|
\returns
|
||||||
|
\retval
|
||||||
|
\rtfonly
|
||||||
|
\sa
|
||||||
|
\section
|
||||||
|
\see
|
||||||
|
\short
|
||||||
|
\showinitializer
|
||||||
|
\since
|
||||||
|
\skip
|
||||||
|
\skipline
|
||||||
|
\snippet
|
||||||
|
\struct
|
||||||
|
\subpage
|
||||||
|
\subsection
|
||||||
|
\subsubsection
|
||||||
|
\tableofcontents
|
||||||
|
\test
|
||||||
|
\throw
|
||||||
|
\throws
|
||||||
|
\todo
|
||||||
|
\tparam
|
||||||
|
\typedef
|
||||||
|
\union
|
||||||
|
\until
|
||||||
|
\var
|
||||||
|
\verbatim
|
||||||
|
\verbinclude
|
||||||
|
\version
|
||||||
|
\warning
|
||||||
|
\weakgroup
|
||||||
|
\xmlonly
|
||||||
|
\xrefitem
|
||||||
|
\$
|
||||||
|
\@
|
||||||
|
\\
|
||||||
|
\&
|
||||||
|
\~
|
||||||
|
\<
|
||||||
|
\>
|
||||||
|
\#
|
||||||
|
\%
|
||||||
|
\"
|
||||||
|
\.
|
||||||
|
\::
|
||||||
|
|
||||||
|
|
||||||
|
Tests
|
||||||
|
=====
|
||||||
|
|
||||||
|
The following test cases will be implemented:
|
||||||
|
|
||||||
|
- Class comments, JD and Qt style.
|
||||||
|
- Class comments, JD and Qt style.
|
||||||
|
|
||||||
|
- Struct comments, JD and Qt style.
|
||||||
|
- Enum comments, JD and Qt style.
|
||||||
|
|
||||||
|
- Class attributes, JD and Qt style, comment before and after declaration.
|
||||||
|
- Class methods, JD and Qt style, comment of parameters in function
|
||||||
|
comment.
|
||||||
|
- Class methods, JD and Qt style, comment of parameters
|
||||||
|
after parameter declaration.
|
||||||
|
|
||||||
|
- Struct attributes, JD and Qt style, comment before and after declaration.
|
||||||
|
- Struct methods, JD and Qt style, comment of parameters in function
|
||||||
|
comment.
|
||||||
|
- Struct methods, JD and Qt style, comment of parameters
|
||||||
|
after parameter declaration.
|
||||||
|
|
||||||
|
- Enum items JD and Qt style, comment before items
|
||||||
|
- Enum items JD and Qt style, comment after items
|
||||||
|
|
||||||
|
- Class comment, JD and Qt style, with all supported tags.
|
||||||
|
- Class comment, JD and Qt style, with all doxygen tags, including
|
||||||
|
ignored ones.
|
||||||
|
|
||||||
|
|
||||||
|
Refactoring
|
||||||
|
===========
|
||||||
|
|
||||||
|
All the code in directory _DoxygenTranslator_ should be refactored:
|
||||||
|
- all methods should be class members
|
||||||
|
- most static methods should be normal members
|
||||||
|
- replace C arrays of strings and sequential searches with STL data
|
||||||
|
structures and algorithms.
|
||||||
|
- use singletons instead of class instantiaion for each comment found.
|
||||||
|
|
||||||
|
|
||||||
|
Documentation
|
||||||
|
=============
|
||||||
|
|
||||||
|
SWIG documentation will contain:
|
||||||
|
- command line options
|
||||||
|
- list of implemented features (types and placements of comments)
|
||||||
|
- list of unimplemented features (types and placements of comments)
|
||||||
|
- list of tags and their translations (all Doxygen tags).
|
||||||
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue