I use Doxygen to generate my documentation but it adds documentation for the structs that does not have any documentation.
I use HIDE_UNDOC_CLASSES in my Doxyfile.in, but I still see some documentation.
Is there another way to explain to Doxygen to not generate any documentation for a class/struct ?
You can use the EXCLUDE_SYMBOLS tag.
The documentation says:
The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
(namespaces, classes, functions, etc.) that should be excluded from the
output. The symbol name can be a fully qualified name, a word, or if the
wildcard * is used, a substring. Examples: ANamespace, AClass,
AClass::ANamespace, ANamespace::*Test
Note that the wildcards are matched against the file with absolute path, so to
exclude all test directories use the pattern */test/*
Related
The external links have exact match as pattern
file:projects.org::some words= (text search)
In contrast, the internal links have only header and name match pattern.
Suppose place a function with a "foo.org"
(defun bisect-search ...)
Below in the file, refer to it, I have to name it literally
#+name: bisect-search
and set
<<bisect-search>>
For keywords which are trivial or hard to be named, I tried
file:current_file.org::keywords
Got but errors.
There might be a solution with elisp commands
elisp:(command )
Could you please provide any hints to match keywords in the current file?
The matching behavior of internal links is controlled by the variable org-link-search-must-match-exact-headline whose doc string says:
org-link-search-must-match-exact-headline is a variable defined in ‘ol.el’.
Its value is ‘query-to-create’
...
Documentation:
Non-nil means internal fuzzy links can only match headlines.
When nil, the a fuzzy link may point to a target or a named
construct in the document. When set to the special value
‘query-to-create’, offer to create a new headline when none
matched.
If you set this variable to nil, then a link like [[bisect-search]] will match the first instance of bisect-search in the file (except that it will not self-match). IMO that's a pretty hefty price you have to pay just to avoid #+NAME:ing something, but YMMV.
I would like to ask if you know a way how to make Doxygen ignore some keywords in code.
I use C in automation project (created in B+R Automation Studio) so there are Local and Global variables definitions.
Example:
_Local int variable1
_Global int variable2
This causes problems to Doxygen generated documentation.
What I need is to ignore bold part of variable definition but I only found a way how to ignore bigger part of code (unfortunately syntax have to stay exactly as in example).
Thank you for your advice and/or answers.
Cheers,
Pavel
The possibilities doxygen has for this are:
create an INPUT_FILTER filtering away the unwanted parts
have a look at the preprocessing possibilities and define all names
define all the names in an include file and include this file conditionally and run with preprocessing
For all possibilities see the documentation in the configuration file section
The documentation for scribble (the Racket documentation tool) says that “Cross references within […] documents rendered together are always resolved”, but the file a.scrbl below fails to reference the section in file b.scrbl
a.scrbl:
#lang scribble/base
#secref["sectag" #:doc "b.scrbl"]
b.scrbl:
#lang scribble/base
#section[#:tag "sectag"]{A section}
When compiling them with scribble --html a.scrbl b.scrbl, I get:
Warning: some cross references may be broken due to undefined tags:
(part ("/path/to/b.scrbl" "sectag"))
How do I reference a section in b.scrbl from a.scrbl?
It seems to work if you remove the #:doc argument.
#lang scribble/base
#secref["sectag"]
This might create an ambiguity though if you use the same tags in both documents, so you may have to change tag names or use your own tag prefixes.
I'm not sure why the relative path for #:doc doesn't work as you expect. Maybe it is only used for referring to collection-installed documents.
I will try to be specific.
I'm writing a C code for a specific processor.
In my function definitions, I need to prepend the string:
section("sec_name")
so my functions have the following structure:
section("sec_name") int function_name(){ .... }
This cause etags to not recognize them as a function and they are not included in the TAGS table.
Is it possible to tell etags to ignore the string
section("sec_name")
and tag the following character as a function?
Thank you for any answers.
In manual page of etags is described the option --regex=regexp, where you can define your own regular expressions for making etags find tags based on non standard declaration format.
There are examples too.
Probably my question is a simple one, but I can't find an answer in docs and I hope someone could help.
Q.: Which are the rules of mapping filenames and filesystem paths to use'd / require'd modules and the names used for package declarations, especially when there are used non-standard symbols like dots or commas? It also would be nice to find out the similar answer for mod_perl's PerlModule and PerlRequire Apache directives related to these scenarios.
As a concrete examle, I have a mod_perl project located in a path with dots and commas like /var/www/projects/my.awesome.project,with,comma/code and I have to load in Apache's conf file the code of a module:
PerlModule my.awesome.project,with,comma::code::MyModule
I also have to declare my package like
package my.awesome.project,with,comma::code::MyModule;
(one of my custom paths from #INC points to /var/www/projects)
Of course this doesn't work. These paths must be mapped to something else. Or isn't it possible at all and everyone have to use paths containg only alphanumeric symbols and underscores?
Thank you in advance for any help/answer.
Perl package names are identifiers, which means they must start with a letter or underscore, and contain only letters, numbers, and underscore. They can also be multiple identifiers separated by ::. The only filename mapping is that :: gets converted to / (or whatever the system directory separator is). Commas and periods are not allowed in package names.
#INC doesn't have that restriction, so you could add /var/www/projects/my.awesome.project,with,comma to it and then name the package code::MyModule. But you're probably better off just sticking with alphanumerics and underscores for your directory names.