2010-04-07 6 views
3

En utilisant doxygen et graphviz avec mon projet C#, je peux générer des diagrammes de classes dans les pages de documentation. Ces diagrammes contiennent les noms de classe et les espaces de noms complets, par ex.Comment afficher uniquement le nom de la classe dans les diagrammes de classes doxygen?

Acme.MyProduct.MyClasses.MyClass 

Est-il possible de configurer doxygen pour réduire un peu le nom de la classe? Les chemins entièrement qualifiés rendent les diagrammes simples même plutôt larges et difficiles à manoeuvrer. Je voudrais minimiser le besoin de défilement horizontal.

Répondre

9

Je suppose que vous avez déjà résolu cela comme il est âgé d'un an, mais une réponse pourrait être utile pour quelqu'un d'autre à la recherche de cela (comme je viens de le faire). Vous pouvez utiliser l'option "HIDE_SCOPE_NAMES". Le définir sur YES (ou le vérifier dans l'interface graphique de doxywizard) masquera les espaces de noms. De mon fichier doxygen:

# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen 
# will show members with their full class and namespace scopes in the 
# documentation. If set to YES the scope will be hidden. 

HIDE_SCOPE_NAMES  = YES 
+0

Non, je ne l'avais pas .. merci :) – izb

2

Les HIDE_SCOPE_NAMES fonctionne très bien, mais ne cache que le champ d'application dans le diagramme de classes, mais pas les graphiques appelant/callee pour chaque méthode.

Pour réduire la largeur de ces diagrammes à une taille lisible, vous pouvez renommer la portée à l'aide du filtre d'entrée. Cela ne supprimera pas l'espace de noms mais le réduira à une largeur plus lisible.

Par exemple, pour renommer l'espace de noms utilisé "COMPANY_NAMESPACE" à "sf":

# The INPUT_FILTER tag can be used to specify a program that doxygen should 
# invoke to filter for each input file. Doxygen will invoke the filter program 
# by executing (via popen()) the command <filter> <input-file>, where <filter> 
# is the value of the INPUT_FILTER tag, and <input-file> is the name of an 
# input file. Doxygen will then use the output that the filter program writes 
# to standard output. If FILTER_PATTERNS is specified, this tag will be 
# ignored. 

INPUT_FILTER   = "sed 's,COMPANY_NAMESPACE,sf,'" 
Questions connexes