A (work-in-progress) nextgen Doxygen for C++
Added:
Changed:
Fixed:
Fixed:
Added:
--comment.free_file_comments
flag so that comments that cannot be
associated to any entity are automatically considered to be referring to the
entire file even if there's no \file
command. (The default is still the old
behaviour. Such comments are ignored with a warning.)--group-uncommented
to add uncommented members to
the group of the preceding member, e.g., here both operators are put in the
same group Arithmetic
without having to explicitly mention the group for
the second line.
struct S {
/// \group Arithmetic
S& operator+=(const S&);
S& operator-=(const S&);
}
--input.hide_undocumented
to completely hide undocumented members
from class summary without having to explicitly put \exclude
everywhere.--comment.command_pattern
to change or extend the commands
recognized by Standardese. Use name=pattern
to replace the pattern for
name
and name|=pattern
to extend the default pattern. E.g.,
--comment.command_pattern 'returns|=RETURNS:'
lets the parser recognize the string RETURNS:
at the beginning and the
string \returns
as introducing a Return values:
section.
If the command takes parameters, they have to be caught in capturing groups, e.g.,
--command.command_pattern 'group=//== ([^\n]*)() ==//'
allows us to write
//== Group Heading ==//
to introduce a member group instead of \group name Group Heading
. Note
that a group has two parameters. The second parameter is the optional
heading which we ignore here by letting it capture the empty string.Changed:
Require a C++17 compiler to build standardese
Sections do not treat entries of the form \section key - text
specially
anymore. This created a substantial amount of complexity during parsing and
also only did not have full Markdown support in the key
section. Instead,
one should just use a proper Markdown list instead.
Moved section_type
from standardese::markup
to the standardese::comment
namespace where command_type
and inline_type
are already.
renamed CHANGELOG to CHANGELOG.rst so it renders better on GitHub
Removed:
Removed command line parameters related to templates, since templates are not implemented.
Removed command line parameter output.section_name_
since it was not
implemented.
Removed command_type::verbatim
. \verbatim
is still supported but not
treated as a command
internally anymore (which is never really was anyway.)
Removed command_type::invalid
, inline_type::invalid
,
section_type::invalid
since these are never created anymore.
Removed standardese::markup::doc_section::type()
since it is not used anymore.
Removed helper functions standardese::comment::is_section
,
standardese::comment::make_section
, standardese::comment::is_command
,
standardese::comment::make_command
, standardese::comment::is_inline
,
standardese::comment::make_inline
. These functions are not needed anymore
since the related enums are now separate and do not form part of a increasing
sequence anymore. (There was very little code where this was actually
helpful.)
Various set_
commands on standardese::comment::config
since config is now
immutable.
Fixed:
Added a missing mutex lock in the comment parser.
make install
now installs the standardese binary
Do not mention templating in README or command line help since it is not implemented.
Check all return values from calls into cmark (by always going through an exception-throwing wrapper.)
Simplified CommonMark extensions by not using any temporary nodes.
Build as shared library and link against a shared boost library unless told not to.
Catch headers for testing are now taken from a submodule. Before we had problems frequently, e.g., in CI, when downloading these headers failed.
Changed:
Fixed:
This is the first (hopefully) stable release in a while. Lots of things have changed since large parts have been rewritten.
To build from source, check the README. Otherwise, you might want to try the docker images as outlined in the README or use standardese from conda-forge.
After a long time with no release, we try to get started again here.
Though this is called a release candidate it might not be very stable yet. The plan is to get 0.4.0 out quickly and then have a number of 0.4.x followups quickly to address obvious issues. If you need stability, you might want to rely on 0.3-4 for the time being, but we're looking forward to your feedback here :)
-
const T*const &
, only link will be the T
)output.require_comment_for_full_synopsis
, controls whether full synopsis will be shown for classes/enums without documentation (disabled by default)