Estoy escribiendo una guía para Ebrowse y la publicaré esta semana. Ebrowse es un analizador rápido utilizado para procesar archivos fuente C ++ para producir una base de datos que contiene la jerarquía de clases que luego procesa Emacs para producir una representación de árbol de clases. Es algo así como GNU Global, pero está integrado en Emacs y produce un árbol de clases, por lo que tomará más tiempo procesarlo en un gran árbol fuente.
Para usar Ebrowse:
find . -name '*.cpp' -or -name '*.h' | ebrowse
Agregue más extensión si lo desea. Si su proyecto solo tiene cientos de archivos, entonces = Ebrowse = funciona realmente bien. Después de ejecutar el comando, BROWSE
se genera un archivo llamado ; Esta es la base de datos que contiene la jerarquía de clases. Simplemente abra este archivo y Emacs reconoce automáticamente el archivo y lo procesa. Después de terminar de procesar la base de datos, Emacs muestra un índice de todas las clases en la base de datos en un formato de árbol: si una clase se deriva de una clase, se anida dentro de la clase principal. Este búfer se llama a Tree buffer
. Emacs proporciona tres formas de interactuar con Ebrowse
:
Tree
buffer: un buffer que muestra el árbol.
Member
buffer: un buffer que muestra los miembros de cada clase. Puede alternar entre declaraciones y definiciones de una clase y saltar a la ubicación de cada una en el archivo fuente correspondiente.
Source
buffer: tu código buffer. Puede interactuar con la Ebrowse
base de datos como buscar y ver (abierta para solo lectura) declaración y definición, abrir a = Miembro = búfer de una clase que contiene la etiqueta en el punto ...
Si tiene un proyecto grande (es decir, más de 10000 archivos cpp), pero todas las clases están en .h
archivos, entonces no agregue .cpp
o de lo contrario tomaría mucho tiempo generar el BROWSE
archivo. Sin embargo, perderá la capacidad de cambiar a definición; pero esto se puede hacer usando ctags
o GNU Global
. Lo más importante es ver la jerarquía de clases Tree buffer
, y esta es la ventaja de Ebrowse.
La guía WIP está aquí .
Actualización : Alternativamente, puede usar doxygen para generar todo tipo de gráficos (gráficos de llamante / llamado, gráficos de dependencia, gráficos de jerarquía de clases ...) pero también lleva mucho tiempo generar todos, incluso para árboles de origen pequeños como ipxe . Esto no doxygen
es lento, de hecho está bastante optimizado, pero calcular la dependencia de toda la base de código no es una tarea trivial.
Bonificación : si trabaja con C y desea ver el gráfico de llamadas, use GNU Cflow. Vea mi respuesta de Reddit .