// This file contains tests for situations, which do not normally
// appear in the code, but must nevertheless be handled correctly.
%module doxygen_misc_constructs
%warnfilter(SWIGWARN_DOXYGEN_UNKNOWN_COMMAND) backslashB;
%inline %{
// Tag '@endink' must be recognized even if it is not
// followed by whitespace.
/** Tag endlink must be recognized also when followed by nonspace character.
*
* @link Connection::getId() @endlink
*/
char g_counter;
/**
Tag endlink must be recognized also when it is the last token
in the comment.
@link Connection::getId() @endlink
@link debugIdeTraceProfilerCoverageSample.py Python example. @endlink
*/
int g_zipCode;
// Parameter 'isReportSize' must appear in comment of the overload, which
// has it. Empty line before link must be preserved.
/**
* Returns address of file line.
*
* @param fileName name of the file, where the source line is located
* @param line line number
* @param isGetSize if set, for every object location both address and size are returned
*
* @link Connection::getId() @endlink
*/
void getAddress(int &fileName,
int line,
bool isGetSize = false) {}
// The first comment must be ignored.
/**
* \defgroup icFacade isystem.connect Facade
*
* This page shows the core classes, which can be used to control
* all aspects of winIDEA, for example: debugging, analyzers, IO module, ...
*/
/**
* This class contains information for connection to winIDEA. Its methods
* return reference to self, so we can use it like this:
*
* CConnectionConfig config = new CConnectionConfig(); * config.discoveryPort(5534).dllPath("C:\\myWinIDEA\\connect.dll").id("main"); ** * All parameters are optional. Set only what is required, default values are * used for unspecified parameters. *
*
* @link advancedWinIDEALaunching.py Python example.@endlink
*/
class CConnectionConfig
{
};
// Text after '\c' must be kept unchanged in Python.
/**
* Determines how long the \c isystem.connect should wait for running
* instances to respond. Only one of \c lfWaitXXX flags from IConnect::ELaunchFlags
* may be specified.
*/
int waitTime(long waitTime) {return 33;}
// Line with tag \ingroup must not appear in translated comment:
/** \ingroup icFacade
*
* This function returns connection id.
*/
int getConnection() {return 3;}
// the following must produce no comment in wrapper
/*******************************************************************/
char getFirstLetter() {return 'a';}
/**
* Class description.
*/
class ClassWithNestedEnum {
public:
/**
* ENested description.
*/
typedef enum {ONE, ///< desc of one
TWO, ///< desc of two
THREE ///< desc of three
} ENested;
/**
* ENestedOdd description.
*/
typedef enum {ODD_ONE ///< desc of odd_one
,ODD_TWO ///< desc of odd_two
,ODD_THREE ///< desc of odd_three
} ENestedOdd;
/**
* ENestedOddPartial1 description.
*/
typedef enum {ODD_PARTIAL1_ONE
,ODD_PARTIAL1_TWO ///< desc of odd_partial1_two
,ODD_PARTIAL1_THREE ///< desc of odd_partial1_three
} ENestedOddPartial1;
/**
* ENestedOddPartial3 description.
*/
typedef enum {ODD_PARTIAL3_ONE ///< desc of odd_partial3_one
,ODD_PARTIAL3_TWO ///< desc of odd_partial3_two
,ODD_PARTIAL3_THREE
} ENestedOddPartial3;
/** Description for TESTENUM. */
enum TESTENUM
{
/** something for none */
TEST_NONE = 0,
/** something for one */
TEST_ONE,
/** something for two */
TEST_TWO /** something more for two */
};
};
/// SIOBeam struct description
struct SIOBeam {
/** testfunction - testing extra trailing doc comment */
void testfunction(
/** testfunction aaa parm */
int testf_aaa,
/** testfunction bbb parm */
double testf_bbb,
/** testfunction ccc parm */
bool testf_ccc /** testfunction more for two parm */
) {}
/// Constructor for input from an existing SIO file
explicit SIOBeam(
const char * filename, ///< Name of input SIO file.
int elevationOrder=1, ///< Interpolation order (0-3) in elevation
int bearingOrder=1 ///< Interpolation order (0-3) in bearing
) {}
};
/// @return This is a bad place for this tag, but it should be ignored.
struct StructWithReturnComment {};
/**
An example of a list in a documentation comment.
- The first item of the list.
- The second list item, on
several indented lines,
showing that the indentation
is preserved.
- And the final list item after it.
And this is not a list item any more.
*/
void showList() { }
/** Incorrectly documented members, these should be post document comments, Github issue #1636 */
struct IncorrectlyDocumentedMembers
{
int aaaa; //! really for bbbb value
int bbbb; //! not for bbbb value, is quietly ignored by Doxygen and SWIG
};
#include "doxygen_misc_constructs.h"
%}
%include "doxygen_misc_constructs.h"