How to add new warnings in doxygen? - doxygen

I'd like Doxygen to generate warnings if files miss an #author or #date tag. Is it possible to generate new types of warnings or is there another way to accomplish what I'd like to do?
Thanks.

Related

How to or should we sort "use Our::Class qw(may_be some_imports);" statements with Perl::Tidy (or not)?

We would like to sort use statements alphabetically in the beginning of our classes automatically via perltidy or maybe other tool if available. We already use Test::PerlTidy to test if the code is formatted before committing.
I found that Perl::Tidy has the options prefilter and postfilter.
prefilter looks like the better approach, because I can sort the statements as I wish in any logical for me order, then leave it to perltidy to format it.
Would you recommend sorting use statements? The used classes do not depend on using one before the other.
Would you recommend using these Perl::Tidy features?
Is there a better approach?

How do you organize imports in Eclipse with Pydev?

I'm looking for ways to sort and to remove unused imports. Cmd+Shift+O just adds used modules.
(Apologies if this is a duplicate, I really can't find anything non-Java.)
Another two steps method is :
Cmd+Shift+O to sort the existing imports (and may be pull some new ones)
Run Pylint or PyFlakes to spot unused imports
This way you will avoid the trap of PyDev not finding imports.
I don't know a simple way to do this. My approach is two step:
Delete all imports (or comment them out)
Cmd+Shift+O to build a new set of imports
But PyDev can't always figure out which modules you need (especially when you use aliases), so this isn't foolproof. Always make sure you can revert your changes.

Docco ignore blocks of comments

I am using docco as a tool for creating coffeescript documentation.
By default, every comment I make in coffeescript source is treated as documentation and moved to the left (explainatory) column.
The problem is, in my source there are some lines of code commented out, left as alternate options, which I want to remain in the right (code) column.
Is there a way to tell docco- "do not touch that, leave this like it is a normal code"?
"#!" or "#ignore" maybe?
Thanks in advance.
Have you tried it? It will ignore #! hashbang lines.
Ignore hashbangs and interpolations...
l.commentFilter = /(^#![/]|^\s*#\{)/
languages
languages = buildMatchers languages
From the source, line 277 https://github.com/jashkenas/docco/blob/master/docco.litcoffee
If nothing else, you should be able to edit the source to add whatever opt out you would like there.

Measuring Documentation Coverage with Doxygen

I wanted to ask if there are any features (or add-ons) for Doxygen to measure the documentation coverage via command line. I already know that I can set up Doxygen to write undocumented elements as warnings into a log file, but to fully evaluate the documentation coverage from that, I'd need to write my own warning log parser. Was something like this done already or is there an even easier way I couldn't find? Is there any add-on I could check out for this?
Thank you.
I don't know anything that can give documentation coverage for doxygen, but a quick search gives 2 interesting results : https://github.com/alobbs/doxy-coverage (require xml output for doxygen) and http://jessevdk.github.io/cldoc/ (alternative for c++ projects?)
There is coverxygen which is using the same idea as alobbs/doxy-coverage (uses xml output of Doxygen) but provides more options (for example, filter by access specifier).
Disclaimer: I am contributing to that project.

GNU Global and GTAGS can't find class definitions

I'm having trouble getting global to find class/struct definitions.
I can find them with exuberant ctags and with cscope.
All tag files are built from the same source file list.
I configured and built global, et.al., only specifying --prefix.
configure did find exhuberant and is using it.
I've been trying global periodically over the years and it's always had this problem.
Any ideas?
thanks,
davep
I've found out what I did wrong. Maybe this will help someone.
Just because configure finds exuberant ctags does not means that it makes it the default parser. My ex ctags doesn't support --gtags and maybe that's why. The default parser in my case was native/builtin.
The native parser treats .h as C only and does not look for C++ constructs. Oddly, it also does not find structs.
I found 2 fixes:
1) The best, if you have exuberant ctags, is to make it the default. The exuberant default configuration processes .h files properly. If it does not, use method 2. In .globalrc, change
default:\
:tc=native:
to
default:\
:tc=ctags:
2) If you do not have exuberant ctags, edit .globalrc and change the langmap line for the builtin-parser from
builtin-parser:\
:langmap=c\:.c.h,yacc\:.y,asm\:.s.S,java\:.java,cpp\:.c++.cc.hh.cpp.cxx.hxx.hpp.C.H,php\:.php.php3.phtml:
to
builtin-parser:\
:langmap=c\:.c,yacc\:.y,asm\:.s.S,java\:.java,cpp\:.c++.cc.hh.h.cpp.cxx.hxx.hpp.C.H,php\:.php.php3.phtml:
I.e. remove the association of .h with C and associate it with C++.
This may cause problems with C .h files. If so, you may need rename ALL C++ .h files to .hh, .hpp, .hxx, etc, as given in the langmap.
Based on my experience with C++, it looks like most people still use .h for their header files.
Just export this variable and that should pretty much do. From the man page for gtags -
GTAGSFORCECPP
If this variable is set, each file whose suffix is 'h' is treated as a C++ source file.