-
Notifications
You must be signed in to change notification settings - Fork 93
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Doxygen 1.9+ support tasklist #215
Comments
Something else for this list: It appears that in some recent doxygen version they've changed the way m.css/documentation/doxygen.py Lines 2031 to 2036 in 6f5c7d5
Doesn't appear that they've added any way to compensate for this (there's no |
I'm going to stop here for now. The remaining checkboxes are quite nightmarish, fortunately the "fix" that makes things behave like before 1.9 is quite short: diff --git a/src/doxygen.cpp b/src/doxygen.cpp
index 45f86b340..ccd4e55e3 100644
--- a/src/doxygen.cpp
+++ b/src/doxygen.cpp
@@ -6432,6 +6432,7 @@ static void addOverloaded(const Entry *root,MemberName *mn,
static void insertMemberAlias(Definition *outerScope,const MemberDef *md)
{
+ return; // TODO for some reason the function makes the alias no longer available for linking in @related
if (outerScope && outerScope!=Doxygen::globalScope)
{
auto aliasMd = createMemberDefAlias(outerScope,md);
diff --git a/src/util.cpp b/src/util.cpp
index ab30eb461..f1292652a 100644
--- a/src/util.cpp
+++ b/src/util.cpp
@@ -2789,7 +2789,7 @@ GetDefResult getDefs(const GetDefInput &input)
}
else // do one of the two getDefs routines (comment out the other one)
{
- return getDefsNew(input);
+ return getDefsOld(input);
}
} Together with the three PRs linked from above, this makes 1.12 work on all my repos without regressions and warning-free. |
Because dealing with this project is
never easyALWAYS AN ABSOLUTE HORRID NIGHTMARE. Things to do:Doxyfile.xml
to avoid an assert -- 45911a1test_doxygen.test_compound.InlineNamespace.test
,Foo::Bar
andFoo::Bar::Baz
are inline, butFoo::Bar::Baz
is being listed asFoo::Baz
even though stored innamespaceFoo_1_1Bar_1_1Baz.xml
and referenced correctly from the parent, hitting an assert. Workaround could be doable but dirty (detecting if inline and extracting from filename).HAVE_DOT
has to be explicitly enabled for 1.9.2+ to make graphs appear in XML output -- 901988fand check how that treats filename conflictsrather not, 'nuff nightmares already) -- e92be04test_doxygen.test_compound.Listing.test_class
,test_doxygen.test_cpp.FunctionAttributes.test
,test_doxygen.test_search.LongSuffixLength.test
) -- replacing the hashes with a constant value to sidestep this altogetherconst Foo&
changed toconstFoo&
(lol), probably may cause some pain also?test_doxygen.test_compound.Includes
no longer exhibits the broken behavior, treating the file where a class was defined as the include file, not the file with a fwdecl; update the test file -- dd1b6f5test_doxygen/contents_blocks/input.dox:29: warning: End of list marker found without any preceding list items
, same on line 39, nothing suspicious in the output, although happening on 1.8.18 already<zwj/>
to random places (test_doxygen.test_contents.Typography.test
,test_doxygen.test_contents.Code.test
,test_doxygen.test_contents.Blocks.test
, log output intest_doxygen.test_contents.AutobriefBlockquote.test
). What's the point of that?! -- 58a04dd<p>
elements to not be totally insanetest_doxygen.test_contents.Typography.test
and probably others an indented block (Markdown's<pre>
) after a blockquote is no longer treated as such and is instead a plain text. That can be fortunately worked around by putting a.
right after the blockquote to separate the two. -- ddec510test_doxygen.test_contents.Custom.test
) -- should hopefully be consistent across versions with 50a7fc5test_doxygen.test_contents.Blocks.test_xrefitem
, inverse of 4ec09a2), what the hell -- was a temporary 1.8.18-1.8.20 regression, 228c9b8<memberdef>
s in XML output doxygen/doxygen#8983, XML files now include<qualifiedname>
elements, which could help with restoring scopes in file docs? TheNamespaceMembersInFileScope
test in particular.warning: documented empty return type of
, fix the test files -- 568edda, a0a0032* *foo*
instead of*foo*
, investigate the impact (Markdown **emphasis** at the beginning of the line is not rendered. doxygen/doxygen#8615)Namespace::function(Type)
fails ifType
is insideNamespace
as well, have to link toNamespace::function(Namespace::Type)
. Same happens forClass::function(Type)
ifType
is withinClass
, somehow it lost the capability since 1.8. Repro case is easy.getDefsOld()
instead ofgetDefsNew()
"fixes" everythinggetDefsOld()
fixes that right after this commit, but somehow it's still broken if the function gets switched to in 1.12 instead@related
can no longer be linked togetDefsOld()
fixes that toomap()
,set()
,list()
fails if there's a STL tag file (wheremap
,set
,list
are header names), commenting those out in the tagfile or explicitly qualifying the@ref
s makes it workany()
,version()
, ...attribute()
, butattributeType()
etc fails too, it's unlikely that there's such a header...dot()
reference from within Math also fails for some reasongetDefsOld()
makes that go away again :/operator""
from the same namespace doesn't work withgetDefsNew()
, fully qualified links work thogetDefsNew()
and doxygen/doxygen@2007519 doesn't help with it at all@param
with it, which if not correctly matches is then missing, causing doxygen to complain that a parameter isn't documented (Color4(T, T)
is the case)GL::Renderer::Error
work withgetDefsNew()
for some reasonTrade::AnimationTrackData::track()
has theR
template argument linking toMaterialTextureSwizzle::R
. That's so fucking horrible I can't even.getDefsNew()
, discovered only because with it the m.css-side generation complained that there's noR
argument to document with@tparam
getResolvedNamespaceMutable()
may make enums again taken way too broadlyThe damn thing doesn't understand anchors in Markdown links anymoreIt now reports links to unkown anchors as warnings, so[scalar/vector functions](#scalarvector-functions)
no longer works. That's fine and good for avoiding link rot, converting those few cases to HTML anchors instead.unable to resolve reference to 'PixelFormat::RGBA8Unorm/@ref' for \ref command
because apparently/
is now considered a part of the reference? could be a good thing tho (yeah there'swarning: expected whitespace after \ref command
for the same line)warning: unable to resolve reference to 'Platform' for \ref command
from a class inside that namespace (basically no link toPlatform
works for some reason?!) -- it's because some classes derive fromPlatform::WindowlessApplication
which is unknown to Doxygen at the time of parse, which then causes it to generate an empty::Platform
namespace for those, and because it's empty, links then don't work as it gets a priority overMagnum::Platform
THE DAMN THING no longer knows how to link to stuff defined in parent classesdoesn't seem to happen with 1.12 anymore, or maybe it was all related to doxygen/doxygen@b290399 againMagnum/Math/Vector3.h:139: warning: @copybrief or @copydoc target 'Vector::Vector(T)' not found
Magnum/SceneGraph/AbstractTranslationRotation3D.h:210: warning: unable to resolve reference to 'rotate(const Math::Quaternion<T>&)' for \ref command
, the original doc work so i suppose this is because the same function is overriden in a subclass with no docstring?@related
docblocks no longer worksinsertMemberAlias()
"fixes" it, not sure whyTagfiles generated with 1.12 then fail to link to many typedefs and other APIs, tagfiles generated with 1.8 workIt's because some commit stops duplicating everything into<compound kind="file">
, which then just uncovered many cases where I was improperly linking to a different namespace without fully qualifying itOn the other hand, a lot of existing workarounds which required explicitCan't remove them just yet because I still need to be able to build on 1.8.16 until 1.12 is practically usable without nasty local patches@ref Magnum::
or@relativeref{Magnum,
might be obsoleted by that"
in backticks seems to make the "code block" bit stuck in markdown parser until the end of times"
gets expanded to"
, so ...@cb{.ini} " @ce
anyway. Won't bother.@endcode
(or the@ce
alias?) followed by-
without a space no longer works -- can be worked around by making it alias@endcode<b></b>
instead (sigh)"Potential recursion while resolving ref" whensection headings are links themselves in m.css, and likely now in doxygen as well, which is probably why it warns@ref
is part of a@section
Ui::UserInterfaceGL::create()
silently fail, taking just the function name and leaving the rest@par
/@note
right after a code block with@m_class
in between loses the class and has to be worked around with putting another<b></b>
in between, update the paragraph fixup to handle this@code
right after@param
)g
)SHOW_HEADERFILE
is the way to control showing the corresponding include for a class/function/... since 1.9.2, notSHOW_INCLUDE_FILES
, adapt to thatstring_view::operator[]
in markdown parser--
and---
detection if GLIBCXX_ASSERTIONS are enabled@
, make sure there's an explicit test case for those that differentiates between 1.8 and 1.12 -- 8ed4a9f<member>
"references" in groups cause file docs to be useless when groups are used since doxygen/doxygen@d460544.typedef Corrade::NoInitT NoInitT
is completely ignored by that thing, causing all links to be broken, with::Corrade
that works, wtf?! -- fixed by the above alsoNamespaceMembersInFileScope
test no longer contains the file-level typedefs, what the hell happened there again -- fixed by the above alsoThe text was updated successfully, but these errors were encountered: