Allan Bowe
Allan Bowe

Reputation: 12691

Remove file tags from doxygen output

We are documenting SAS code using doxygen (using EXTENSION_MAPPING = sas=Java) and our doxyfile is here.

The issue is that a bunch of tags are appearing under each file - as per the highlighted section below.

enter image description here

How can we remove these entries? For info, our generated docs are hosted here.

My doxygen version is 1.8.14

Upvotes: 1

Views: 490

Answers (1)

Nico Munting
Nico Munting

Reputation: 38

Assuming that you are just using doxygen for the headers of the SAS macros that you have written, you can avoid that doxygen looks at (parts of) the code by enclosing those pieces in \cond and \endcond commands.

I have used doxygen on some SAS projects and the macros would be structured as follows:

/**
   \file       sasmacro.sas
   ...  <more doxygen commands>   
*/ /** \cond */ 

%macro sasmacro(); 
    ... 
%mend; 

/** \endcond */

Update: to check whether this would also work in your case, I forked the Macro Core repository on GitHub and ran doxygen (version 1.8.20) using the configuration file in the repository (I had to change some directories). The resulting doxygen documentation looked like this. As you can see in the image, I got way more tags than you did. I am not sure why this is the case.

After that I changed some of the macros (mf_abort, mf_existds and mf_getengine). Essentially, I wrapped them in the @cond and @endcond command as illustrated above. By the way, both @ and \ should work. I reran doxygen using the same settings and in my case all the tags are gone.

As an example the new version of mf_existds that I used:

/**
  @file mf_existds.sas
  @brief Checks whether a dataset OR a view exists.
  @details Can be used in open code, eg as follows:

      %if %mf_existds(libds=work.someview) %then %put  yes it does!;

  NOTE - some databases have case sensitive tables, for instance POSTGRES
    with the preserve_tab_names=yes libname setting.  This may impact
    expected results (depending on whether you 'expect' the result to be
    case insensitive in this context!)

  @param libds library.dataset
  @return output returns 1 or 0
  @warning Untested on tables registered in metadata but not physically present
  @version 9.2
  @author Allan Bowe
**/ /** @cond */

%macro mf_existds(libds
)/*/STORE SOURCE*/;

  %if %sysfunc(exist(&libds)) ne 1 & %sysfunc(exist(&libds,VIEW)) ne 1 %then 0;
  %else 1;

%mend;

/** @endcond */

Upvotes: 1

Related Questions