2012-06-25 18 views
10

In doxygen scrivo:Doxygen: tag code uccide indentazione

/*! Sample: 

\code{.cpp} 
void main(int argc, char** argv) 
{ 
    if (argc < 2) 
    { 
     cout << "no way!" << endl; 
    } 
    else 
    { 
     foobar(argv[1]); 
    } 
} 
\endcode 
*/ 

Ora Doxygen genererà un esempio di codice perfettamente sintassi evidenziata per la mia documentazione, ma purtroppo uccide anche il rientro:

Campione :

void main(int argc, char** argv) 
{ 
if (argc < 2) 
{ 
cout << "no way!" << endl; 
} 
else 
{ 
foobar(argv[1]); 
} 
} 

Cosa posso fare per rendere doxygen rispettare il mio rientro. So che c'è \ verbatim, ma non evidenzia la sintassi.


EDIT: Ecco la configurazione doxygen, forse c'è qualcosa che non va in là:

#--------------------------------------------------------------------------- 
# Project related configuration options 
#--------------------------------------------------------------------------- 
DOXYFILE_ENCODING  = UTF-8 
PROJECT_NAME   = demo 
PROJECT_NUMBER   = 
PROJECT_BRIEF   = 
PROJECT_LOGO   = 
OUTPUT_DIRECTORY  = ../../../../../Desktop/dox 
CREATE_SUBDIRS   = NO 
OUTPUT_LANGUAGE  = English 
BRIEF_MEMBER_DESC  = YES 
REPEAT_BRIEF   = YES 
ABBREVIATE_BRIEF  = "The $name class" \ 
         "The $name widget" \ 
         "The $name file" \ 
         is \ 
         provides \ 
         specifies \ 
         contains \ 
         represents \ 
         a \ 
         an \ 
         the 
ALWAYS_DETAILED_SEC = NO 
INLINE_INHERITED_MEMB = NO 
FULL_PATH_NAMES  = NO 
STRIP_FROM_PATH  = 
STRIP_FROM_INC_PATH = 
SHORT_NAMES   = NO 
JAVADOC_AUTOBRIEF  = YES 
QT_AUTOBRIEF   = NO 
MULTILINE_CPP_IS_BRIEF = YES 
INHERIT_DOCS   = YES 
SEPARATE_MEMBER_PAGES = NO 
TAB_SIZE    = 8 
ALIASES    = 
TCL_SUBST    = 
OPTIMIZE_OUTPUT_FOR_C = NO 
OPTIMIZE_OUTPUT_JAVA = NO 
OPTIMIZE_FOR_FORTRAN = NO 
OPTIMIZE_OUTPUT_VHDL = NO 
EXTENSION_MAPPING  = 
MARKDOWN_SUPPORT  = YES 
BUILTIN_STL_SUPPORT = NO 
CPP_CLI_SUPPORT  = NO 
SIP_SUPPORT   = NO 
IDL_PROPERTY_SUPPORT = YES 
DISTRIBUTE_GROUP_DOC = NO 
SUBGROUPING   = YES 
INLINE_GROUPED_CLASSES = NO 
INLINE_SIMPLE_STRUCTS = NO 
TYPEDEF_HIDES_STRUCT = NO 
SYMBOL_CACHE_SIZE  = 0 
LOOKUP_CACHE_SIZE  = 0 

#--------------------------------------------------------------------------- 
# Build related configuration options 
#--------------------------------------------------------------------------- 
EXTRACT_ALL   = YES 
EXTRACT_PRIVATE  = YES 
EXTRACT_PACKAGE  = NO 
EXTRACT_STATIC   = YES 
EXTRACT_LOCAL_CLASSES = YES 
EXTRACT_LOCAL_METHODS = YES 
EXTRACT_ANON_NSPACES = YES 
HIDE_UNDOC_MEMBERS  = NO 
HIDE_UNDOC_CLASSES  = NO 
HIDE_FRIEND_COMPOUNDS = NO 
HIDE_IN_BODY_DOCS  = NO 
INTERNAL_DOCS   = NO 
CASE_SENSE_NAMES  = NO 
HIDE_SCOPE_NAMES  = NO 
SHOW_INCLUDE_FILES  = YES 
FORCE_LOCAL_INCLUDES = NO 
INLINE_INFO   = YES 
SORT_MEMBER_DOCS  = YES 
SORT_BRIEF_DOCS  = NO 
SORT_MEMBERS_CTORS_1ST = NO 
SORT_GROUP_NAMES  = NO 
SORT_BY_SCOPE_NAME  = NO 
STRICT_PROTO_MATCHING = NO 
GENERATE_TODOLIST  = YES 
GENERATE_TESTLIST  = YES 
GENERATE_BUGLIST  = YES 
GENERATE_DEPRECATEDLIST= YES 
ENABLED_SECTIONS  = 
MAX_INITIALIZER_LINES = 30 
SHOW_USED_FILES  = YES 
SHOW_FILES    = YES 
SHOW_NAMESPACES  = YES 
FILE_VERSION_FILTER = 
LAYOUT_FILE   = 
CITE_BIB_FILES   = 

#--------------------------------------------------------------------------- 
# configuration options related to warning and progress messages 
#--------------------------------------------------------------------------- 
QUIET     = NO 
WARNINGS    = NO 
WARN_IF_UNDOCUMENTED = NO 
WARN_IF_DOC_ERROR  = YES 
WARN_NO_PARAMDOC  = NO 
WARN_FORMAT   = "$file:$line: $text" 
WARN_LOGFILE   = C:\Users\foobar\Desktop\dox\demo.log 

#--------------------------------------------------------------------------- 
# configuration options related to the input files 
#--------------------------------------------------------------------------- 
INPUT     = ../demo/src/export 
INPUT_ENCODING   = UTF-8 
FILE_PATTERNS   = *.c \ 
         *.cc \ 
         *.cxx \ 
         *.cpp \ 
         *.c++ \ 
         *.d \ 
         *.java \ 
         *.ii \ 
         *.ixx \ 
         *.ipp \ 
         *.i++ \ 
         *.inl \ 
         *.h \ 
         *.hh \ 
         *.hxx \ 
         *.hpp \ 
         *.h++ \ 
         *.idl \ 
         *.odl \ 
         *.cs \ 
         *.php \ 
         *.php3 \ 
         *.inc \ 
         *.m \ 
         *.mm \ 
         *.dox \ 
         *.py \ 
         *.f90 \ 
         *.f \ 
         *.vhd \ 
         *.vhdl 
RECURSIVE    = YES 
EXCLUDE    = 
EXCLUDE_SYMLINKS  = NO 
EXCLUDE_PATTERNS  = 
EXCLUDE_SYMBOLS  = 
EXAMPLE_PATH   = 
EXAMPLE_PATTERNS  = * 
EXAMPLE_RECURSIVE  = NO 
IMAGE_PATH    = 
INPUT_FILTER   = 
FILTER_PATTERNS  = 
FILTER_SOURCE_FILES = NO 
FILTER_SOURCE_PATTERNS = 

#--------------------------------------------------------------------------- 
# configuration options related to source browsing 
#--------------------------------------------------------------------------- 
SOURCE_BROWSER   = YES 
INLINE_SOURCES   = NO 
STRIP_CODE_COMMENTS = YES 
REFERENCED_BY_RELATION = YES 
REFERENCES_RELATION = YES 
REFERENCES_LINK_SOURCE = YES 
USE_HTAGS    = NO 
VERBATIM_HEADERS  = YES 

#--------------------------------------------------------------------------- 
# configuration options related to the alphabetical class index 
#--------------------------------------------------------------------------- 
ALPHABETICAL_INDEX  = YES 
COLS_IN_ALPHA_INDEX = 5 
IGNORE_PREFIX   = 

#--------------------------------------------------------------------------- 
# configuration options related to the HTML output 
#--------------------------------------------------------------------------- 
GENERATE_HTML   = YES 
HTML_OUTPUT   = html 
HTML_FILE_EXTENSION = .html 
HTML_HEADER   = header.html 
HTML_FOOTER   = 
HTML_STYLESHEET  = 
HTML_EXTRA_FILES  = 
HTML_COLORSTYLE_HUE = 220 
HTML_COLORSTYLE_SAT = 100 
HTML_COLORSTYLE_GAMMA = 80 
HTML_TIMESTAMP   = NO 
HTML_DYNAMIC_SECTIONS = NO 
HTML_INDEX_NUM_ENTRIES = 100 
GENERATE_DOCSET  = NO 
DOCSET_FEEDNAME  = "Doxygen generated docs" 
DOCSET_BUNDLE_ID  = org.doxygen.Project 
DOCSET_PUBLISHER_ID = org.doxygen.Publisher 
DOCSET_PUBLISHER_NAME = Publisher 
GENERATE_HTMLHELP  = NO 
CHM_FILE    = 
HHC_LOCATION   = 
GENERATE_CHI   = NO 
CHM_INDEX_ENCODING  = 
BINARY_TOC    = NO 
TOC_EXPAND    = NO 
GENERATE_QHP   = NO 
QCH_FILE    = 
QHP_NAMESPACE   = org.doxygen.Project 
QHP_VIRTUAL_FOLDER  = doc 
QHP_CUST_FILTER_NAME = 
QHP_CUST_FILTER_ATTRS = 
QHP_SECT_FILTER_ATTRS = 
QHG_LOCATION   = 
GENERATE_ECLIPSEHELP = NO 
ECLIPSE_DOC_ID   = org.doxygen.Project 
DISABLE_INDEX   = NO 
GENERATE_TREEVIEW  = YES 
ENUM_VALUES_PER_LINE = 4 
TREEVIEW_WIDTH   = 250 
EXT_LINKS_IN_WINDOW = NO 
FORMULA_FONTSIZE  = 10 
FORMULA_TRANSPARENT = YES 
USE_MATHJAX   = NO 
MATHJAX_RELPATH  = http://www.mathjax.org/mathjax 
MATHJAX_EXTENSIONS  = 
SEARCHENGINE   = NO 
SERVER_BASED_SEARCH = NO 

#--------------------------------------------------------------------------- 
# configuration options related to the LaTeX output 
#--------------------------------------------------------------------------- 
GENERATE_LATEX   = NO 
LATEX_OUTPUT   = latex 
LATEX_CMD_NAME   = latex 
MAKEINDEX_CMD_NAME  = makeindex 
COMPACT_LATEX   = NO 
PAPER_TYPE    = a4wide 
EXTRA_PACKAGES   = 
LATEX_HEADER   = 
LATEX_FOOTER   = 
PDF_HYPERLINKS   = YES 
USE_PDFLATEX   = YES 
LATEX_BATCHMODE  = NO 
LATEX_HIDE_INDICES  = NO 
LATEX_SOURCE_CODE  = NO 
LATEX_BIB_STYLE  = plain 

#--------------------------------------------------------------------------- 
# configuration options related to the RTF output 
#--------------------------------------------------------------------------- 
GENERATE_RTF   = NO 
RTF_OUTPUT    = rtf 
COMPACT_RTF   = NO 
RTF_HYPERLINKS   = NO 
RTF_STYLESHEET_FILE = 
RTF_EXTENSIONS_FILE = 

#--------------------------------------------------------------------------- 
# configuration options related to the man page output 
#--------------------------------------------------------------------------- 
GENERATE_MAN   = NO 
MAN_OUTPUT    = man 
MAN_EXTENSION   = .3 
MAN_LINKS    = NO 

#--------------------------------------------------------------------------- 
# configuration options related to the XML output 
#--------------------------------------------------------------------------- 
GENERATE_XML   = NO 
XML_OUTPUT    = xml 
XML_SCHEMA    = 
XML_DTD    = 
XML_PROGRAMLISTING  = YES 

#--------------------------------------------------------------------------- 
# configuration options for the AutoGen Definitions output 
#--------------------------------------------------------------------------- 
GENERATE_AUTOGEN_DEF = NO 

#--------------------------------------------------------------------------- 
# configuration options related to the Perl module output 
#--------------------------------------------------------------------------- 
GENERATE_PERLMOD  = NO 
PERLMOD_LATEX   = NO 
PERLMOD_PRETTY   = YES 
PERLMOD_MAKEVAR_PREFIX = 

#--------------------------------------------------------------------------- 
# Configuration options related to the preprocessor 
#--------------------------------------------------------------------------- 
ENABLE_PREPROCESSING = YES 
MACRO_EXPANSION  = NO 
EXPAND_ONLY_PREDEF  = NO 
SEARCH_INCLUDES  = YES 
INCLUDE_PATH   = 
INCLUDE_FILE_PATTERNS = 
PREDEFINED    = 
EXPAND_AS_DEFINED  = 
SKIP_FUNCTION_MACROS = YES 

#--------------------------------------------------------------------------- 
# Configuration::additions related to external references 
#--------------------------------------------------------------------------- 
TAGFILES    = 
GENERATE_TAGFILE  = 
ALLEXTERNALS   = NO 
EXTERNAL_GROUPS  = YES 
PERL_PATH    = /usr/bin/perl 

#--------------------------------------------------------------------------- 
# Configuration options related to the dot tool 
#--------------------------------------------------------------------------- 
CLASS_DIAGRAMS   = NO 
MSCGEN_PATH   = 
HIDE_UNDOC_RELATIONS = NO 
HAVE_DOT    = NO 
DOT_NUM_THREADS  = 0 
DOT_FONTNAME   = FreeSans 
DOT_FONTSIZE   = 10 
DOT_FONTPATH   = 
CLASS_GRAPH   = YES 
COLLABORATION_GRAPH = YES 
GROUP_GRAPHS   = YES 
UML_LOOK    = NO 
UML_LIMIT_NUM_FIELDS = 10 
TEMPLATE_RELATIONS  = NO 
INCLUDE_GRAPH   = YES 
INCLUDED_BY_GRAPH  = YES 
CALL_GRAPH    = YES 
CALLER_GRAPH   = NO 
GRAPHICAL_HIERARCHY = YES 
DIRECTORY_GRAPH  = YES 
DOT_IMAGE_FORMAT  = png 
INTERACTIVE_SVG  = NO 
DOT_PATH    = \\somewhere\over\the\rainbow 
DOTFILE_DIRS   = 
MSCFILE_DIRS   = 
DOT_GRAPH_MAX_NODES = 50 
MAX_DOT_GRAPH_DEPTH = 1000 
DOT_TRANSPARENT  = YES 
DOT_MULTI_TARGETS  = NO 
GENERATE_LEGEND  = YES 

DOT_CLEANUP   = YES 

risposta

9

Se si utilizza Doxygen 1.8.1.1 o precedente, il rientro sarà rispettato. Doxygen Release 1.8.1.2 rimuove il rientro principale condiviso dalle linee @code. Controlla il Change log released on 12-07-2012.

+0

Questa errata funzionalità è stata risolta nella versione 1.8.7 (o forse prima), tuttavia, i blocchi di codice in stile Markdown non conservano ancora il rientro. '@code ... @ endcode' funziona bene, ma' ~~~~~ ... ~~~~~ 'no. –

1

Utilizzando Doxygen 1.8.1 ottengo una sintassi evidenziata blocco di codice con rientro rispettato con l'esempio nella questione . Quale versione di Doxygen stai usando? Forse questo è solo un caso di aggiornare la tua versione di Doxgen. Se questa non è la soluzione, dovrai fornire un po 'più di contesto, ad esempio la documentazione di esempio che inserisci nel codice sorgente in un file .txt o .markdown?

Ho dovuto modificare il carattere di commento di apertura da \ a /, presumo che questo sia solo un errore di battitura. Inoltre, se il tuo file contiene sorgenti C++, lo può essere lasciato fuori da \code{.cpp} (ad esempio, \code di per sé va bene).

+0

Uso anche doxygen 1.8.1. Esistono due differenze tra il campione qui e la cosa reale: 1. Avvio di ogni riga del commento con un altro asterisco (*) allineato a quello nella prima riga. Questo non causa il problema, perché ho già provato senza. 2. Il mio codice reale è solo un po 'più prolisso e parte di una descrizione di classe. E ho appena usato il codice di esempio pubblicato sopra, ma il comportamento è lo stesso. –

+0

Ho provato a inserire i commenti di esempio come documentazione di un metodo di classe e ho ancora un blocco di codice rientrato. Non riesco a vedere nulla nel tuo file di configurazione che potrebbe causare il tuo problema.(Anche se c'è molto da fare, forse potresti includere solo i campi che differiscono dal file di configurazione predefinito). Puoi fornire un contesto simile - ad esempio un piccolo esempio di codice che riproduce il tuo problema? – Chris

2

Aggiorna il foglio di stile doxygen html (.css) all'ultima versione. Questo ha risolto il problema per me.

8

Ho avuto lo stesso problema e si è rivelato a causa dell'uso di un costume HTML_STYLESHEET: il nostro file CSS definito i propri stili di div.fragment usato da Doxygen per avvolgere frammenti di codice che non comprendevano white-space: pre. Aggiungendo risolto il problema.

0

Ho riscontrato questo problema durante la documentazione dello stesso codice con lo stesso Doxygen 1.8.11 su un altro computer (molto più vecchio). Tutto l'output generato è stato ricreato, incluso il CSS.

Il rientro era visibile nell'origine HTML ma il browser predefinito di sistema si rifiutava di mostrarlo correttamente e un file CHM corrispondente si comportava allo stesso modo (non sorprende dato che il visualizzatore CHM di Microsoft utilizza lo stesso browser).

Bene, era il browser che è ovviamente troppo vecchio per questo. Anche Firefox 14, che è anche piuttosto vecchio, mostra l'HTML generato con indentazione.