| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| | |
Implementation of standard generator for docbook output
|
| |
| |
| |
| |
| |
| |
| |
| | |
Till now docbook had its own output generator, but lot of possibilities were missing (see remark about updating below), with this patch the (more than) basic implementation has been made.
Added some docbook tests to the current tests and updated documentation where necessary
Tried updating current version but too many issues remained that were generically handled in the standard generator, code is in current version behind '#if 0' construct in doxygen.cpp and name with '_v1' and in docbookgen.cp'
|
|/
|
|
|
|
| |
runtime.
Creating possibility to add extra doxygen configuration items to tests (e.g. QUIET=NO)
|
|\
| |
| | |
Typos found by running "codespell"
|
| | |
|
|\ \
| | |
| | | |
Correct typing error in test 5
|
| |/ |
|
|/ |
|
|
|
|
|
|
|
| |
table of contents
- correction of compiler error (not caught on Windows)
- updated test 43 (for in page toc)
|
|\
| |
| | |
Problem with \cond in normal comment of test 015
|
| |
| |
| |
| |
| |
| |
| |
| | |
In the \cond is also recognized in non-doxygen comment.
- As a work around the \ has been removed
- in case of e.g. pdf the enabled function is not shown as it does not have a doxygen comment
- test file output update due to change in input code.
- pre.l and commentcnv.l. better error message i.e. showing better the used condition
|
|/ |
|
|\
| |
| | |
Create test possibilities for xhtml and pdf output
|
| |
| |
| |
| | |
Regression of default output (INPUT setting was overruled).
|
| |
| |
| |
| |
| |
| | |
The tests in the testing directory provided possibilities to do some regression tests based on the xml output.
With the option --xhtml it is possible to see whether or not a test or set of tests is xhtml compliant.
With the option --pdf it is possible to see whether or not a test or set of tests can be build to a pdf file (per test).
|
|\ \
| | |
| | | |
Test renumbering
|
| | |
| | |
| | |
| | | |
The tests numbers 067 and 068 were used twice, test 067 has been renamed to 072 and test 068 has been renamed to 073.
|
| |/
| |
| |
| | |
The tests numbers 067 and 068 were used twice, test 067 has been renamed to 072 and test 068 has been renamed to 073.
|
|\ \
| | |
| | | |
Enable possibility to run single tests
|
| |/
| |
| |
| | |
Create the possibility to run only one or more tests.
|
|\ \
| | |
| | | |
Typos found by running "codespell"
|
| |/ |
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The Markdown processing was done after the normal tag processing and splitting the comment in brief, doc, inline. This resulted in that sectioning parts (i.e. e.g. ==== conversion to <h1> ) remained in the brief description whilst similar constructs with HTML commands landed in the doc (details) description. By performing the markdown on the entire comment block this problem has been overcome.
commentscan.l
- change moment of calling markdown processing
- skip start spaces and subsequent empty lines in markdown processed code
- small debug correction
markdown.cpp
- don't convert the dashes in <!-- and --> (HTML type comment)
- small debug correction
054 test
- update of example for compatibility and adding part about none code result.
doxygen.cpp
- small textual comment correction
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When a C++11 `enum class` was present in an anonymous namespace (usually
in *.cpp files), the XML output was emitting warnings similar to the
following:
Internal inconsistency: member False does not belong to any container!
And the XML output was rendering bogus IDs for enum values starting with
`dummy_`, such as:
dummy_1a96ab6574751fdf6a53ceec8a3896c45daf8320b26d30ab433c5a54546d21f414c
The fix is to call memberOutputFileBase() on the enumeration itself and
not on the enum value, that way it provides correct file base that
corresponds to file base of the enumeration. There's also a new test
that checks this.
Note: this assumes that enum values belong to the same compound as enums
themselves. In my experience that was always the case and there's no
broken test after this change, so I hope I didn't break anything.
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* testing/069_link_variadic_template.cpp: new file, @link regression
test for variadic template function
* testing/069/069__link__variadic__template_8cpp.xml: new file, expected
@link regression test result for variadic template function
* testing/070_ref_variadic_template.cpp: new file, @ref regression
test for variadic template function
* testing/070/070__ref__variadic__template_8cpp.xml: new file, expected
@ref regression test result for variadic template function
At the time of writing, the part between <> is totally ignored:
func<Args...>(Args... args) is interpreted as func(Args... args).
Beware that a function parameter with either a & or * operator, e.g.
'const Args&... args', requires @link and @ref to use such parameter
as verbatim, i.e. {@link func(const Args&... args)}. At the time of
writing, the form {@link func(const Args&...)} will fail, unless the
function parameter was declared just as 'const Args&...'.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* testing/067_link_varargs.cpp: new file, @link regression test for
variadic function arguments '...'
* testing/067/067__link__varargs_8cpp.xml: new file, expected @link
regression test result for variadic function arguments '...'
* testing/068_ref_varargs.cpp: new file, @ref regression test for
variadic function arguments '...'
* testing/068/068__ref__varargs_8cpp.xml: new file, expected @ref
regression test result for variadic function arguments '...'
|
|\ \
| | |
| | | |
Full support for strong and typed enums in the XML output
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
There's a new boolean `strong` attribute on the `<memberdef>` element
that defines whether the enum is a classic or a strong one.
Tests were updated to verify both cases.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The <type> element (used for function return type and variable type) is
now reused also for underlying enum type.
C++03-style enum types that don't have the underlying type specified
have the <type> tag as well, but empty to indicate that the underlying
type is unspecified.
Added a new test case for this.
|
|\ \ \
| | | |
| | | | |
Provide template parameters also for type aliases in the XML output
|
| |/ /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Until now, probably due to C++03 assumptions, typedefs and type
aliases skipped printing of the template parameter specifications to
the XML output. That's now fixed, so the following type alias will
properly contain <templateparamlist> in the XML output:
template<class T> using Vec = std::vector<T>;
Added also a test case that verifies this.
|
|\ \ \
| | | |
| | | | |
Expose TOC placeholder in XML output
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Currently the XML output for a page was generated the same
independently of whether the \tableofcontents command was present in
the page source or not. Because of that, the users of the XML output
had no chance of knowing whether given page should have a TOC or not.
There's now a new <tableofcontents> element that gets added in case
the TOC was requested. As it is trivial to populate the TOC on user
side by simply enumerating the <sectN> elements, the element is empty
and acts just as a boolean.
|
|\ \ \ \
| |/ / /
| | | | |
Provide page brief in <briefdescription> of XML output
|
| |/ /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Until now the brief description of pages was prepended to the
<detaileddescription> element and the <briefdescription> element was
not present at all, which meant there was no easy way to extract the
brief description for purposes of creating a page index, for example.
With this patch, the brief description is included in both
<briefdescription> and <detaileddescription>, thus duplicated, to
avoid backwards compatibility issues.
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The <sp> element in <programlisting> has a new optional attribute
`value`, which contains value of given invalid ASCII character. In
case of space, the `value` attribute is omitted.
Use cases for this: including snippets of *very esoteric* languages,
markup that makes use of the advanced ASCII formatting characters or
for example highlighting a console output containing ANSI color codes
(which is my case, in fact).
Regarding backwards compatibility -- as files with such ASCII
characters are very rare, I don't expect this minor difference in the
output to be a problem. Besides that, such ASCII characters are often
replaced by a space in many applications anyway.
A test snippet was extended to contain a special character so this
difference in behavior could be verified.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This is based on work done in 141dbfd5a4f79c98da14a1b414c6db4e1b34618b
through ed9acb6e1bb81a2eec334180f7b8c1bf0598b444 and makes a few
behavioral changes to it.
There's a new attribute called `filename` and the `language` was removed,
because it could provide misleading information. This allows for more
flexibility on the user side. In particular:
* For historical reasons, `*.txt` files are marked by Doxygen as C++
(see https://bugzilla.gnome.org/show_bug.cgi?id=760836 for details).
In particular, code snippet included from a CMakeLists.txt file would
be marked and highlighted as C++. So in this case, the language
attribute would be very misleading.
* Doxygen is aware only of a very small subset of languages and thus a
lot of information can be lost when relying on its
extension-to-language-name conversion -- in particular, all
extensions that are not recognized are assumed to be C++. On the other
hand, putting more effort into its language detection algorithms is
not worth the time, as there will always be new languages that fail to
detect. So let's leave that on the user of the XML output instead.
* Using just file extension is not enough, it has to be a full filename.
For example, `*.txt` can be either a plain text file or a
`CMakeLists.txt`.
* The path is not stripped from the filename, as it also may contain
additional information that helps to detect the language better.
In addition to that, filenames of code snippets included via the \include
command and related are propagated to the <programlisting> element as
well.
With this change, (1) code snippets using simply
\code
some code
\endcode
will not produce any `filename` attribute and it's up to the user what to
do -- assume C++, detect language from contents or not highlight
anything.
<programlisting>
some code
</programlisting>
(2) Code snippets using
\code{.cmake}
some code
\endcode
will produce the following:
<programlisting filename=".cmake">
some code
</programlisting>
(3) And finally, \include, \dontinclude and related \skip, \skipline etc.
commands
\include path/to/some-file.py
will produce
<programlisting filename="path/to/some-file.py">
some code
</programlisting>
The tests were updated to check all three cases.
On the user side, when using Pygments for example, it's then just a
matter of calling pygments.lexers.find_lexer_class_for_filename() with
value of the `filename` attribute value and optionally also the code
snippet for additional language analysis.
|
| | |
|
| |
| |
| |
| |
| | |
This checks the calling from "make tests" to "make test", but lets CMake handle
all the rest.
|
| | |
|
| | |
|
|/
|
|
|
| |
fix unit test to support the new programlisting
attribute "language"
|
|
|
|
|
|
| |
int Property {get; set;} = 23;
The parser was ending the property at the closing bracket,
which resulted in the initializer being assigned to the following property.
|
|
|
|
|
|
|
|
|
| |
This patch makes the handling of the \snippet and other commands consistent between the different languages (no line numbers anymore with python) and also introduces analogous to \includelineno the command \snippetlineno.
Some non relevant changes:
- *code.l Calculation of the end line was incorrect, in case of a snippet the end line was the number of lines of the snippet and not reltive to the start line.
- *code.l made consistent over the different laguages, enabling exBlock and inlineFragment
- testing/indexpage.xml in test 14 the \snippet command was used with python and giving line numbers, linenumbers are now gone (consistency)
|
|
|
|
| |
implementation
|
| |
|
| |
|
|\
| |
| | |
Bug 646002 - htmlonly content appears in generated XML output
|
| |
| |
| |
| | |
Test has to be adjusted as well.
|