Как отображать только имя класса на диаграммах классов doxygen?

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

Acme.MyProduct.MyClasses.MyClass

Можно ли настроить doxygen, чтобы немного сократить это до имени класса?

MyClass

Полные пути делают даже простые диаграммы довольно широкими и громоздкими. Я хотел бы свести к минимуму необходимость горизонтальной прокрутки.


person izb    schedule 07.04.2010    source источник


Ответы (2)


Я подозреваю, что вы уже решили это, поскольку ему уже год, но ответ может быть полезен для всех, кто ищет это (как я только что сделал). Вы можете использовать опцию «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
person Gibsnag    schedule 24.03.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,'"
person MattiasF    schedule 26.07.2011