Как отобразить только имя класса в диаграммах классов Doxygen? - PullRequest
5 голосов
/ 07 апреля 2010

Используя doxygen и graphviz в моем проекте на C #, я могу создавать диаграммы классов на страницах документации.На этих диаграммах есть полные имена классов и пространства имен, например,

Acme.MyProduct.MyClasses.MyClass

Можно ли настроить doxygen, чтобы сократить это до просто имени класса?полностью определенные пути делают даже простые диаграммы довольно широкими и громоздкими.Я бы хотел свести к минимуму необходимость горизонтальной прокрутки.

Ответы [ 2 ]

12 голосов
/ 24 марта 2011

Я подозреваю, что вы уже решили эту проблему, поскольку ей год, но ответ может быть полезен для всех, кто ищет это (как я только что сделал). Вы можете использовать опцию "HIDE_SCOPE_NAMES". Установка его в YES (или проверка в графическом интерфейсе doxywizard) скроет пространства имен. Из моего файла 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
3 голосов
/ 26 июля 2011

HIDE_SCOPE_NAMES прекрасно работает, но скрывает только область видимости в диаграмме классов, но не графы вызывающих / вызываемых для каждого метода.

Чтобы уменьшить ширину этих диаграмм до читабельного размера, вы можете переименовать область, используя входной фильтр. Это не удалит пространство имен, но уменьшит его до более читаемой ширины.

Например, чтобы переименовать пространство имен «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,'"
...