c++ – ¿El mejor indexador de C ++?

Pregunta:

Recientemente, cambié de Eclipse CDT a Spacemacs con la capa C ++ como mi entorno de desarrollo.

Hasta ahora … ¡genial! Sin embargo, una de las cosas que extraño de Eclipse es su indexador .

En este momento estoy usando GNU Global con la capa gtags . El problema con los gtags es que es un sistema de etiquetado , no un indexador.

Ejemplo:

La búsqueda de referencias para una función llamada set en la clase Field devuelve 165 referencias en mi base de código, de las cuales solo una es en realidad una referencia a Field::set

La búsqueda de referencias para set en CDT devuelve 1 resultado.

¿Existe una mejor solución de indexación que pueda usar en emacs?

Buscando en línea encontré esta página donde se enumeran 3 indexadores basados ​​en clang.

Preguntas:

  • ¿Alguno de estos ofrecerá una mejor experiencia de indexación?
  • ¿Alguna sugerencia sobre cuál utilizar?
  • ¿Existe una alternativa mejor que no esté en la lista?

Nota:

También he estado usando clang-complete para clang-complete código, pero he descubierto que es muy lento. Inusualmente lento. ( No soy el único en experimentar esto ) Si alguna solución de indexación sufriera el mismo problema, no funcionaría.

Respuesta:

Solo puedo decir por rtags que he estado usando activamente durante los últimos 1-2 años.

rtags funciona como se esperaba. Está basado en un compilador y proporciona una navegación correcta por el código. Algo que he estado buscando durante los últimos 10 años como usuario de emacs.

La configuración puede ser un poco complicada. Recomiendo echar un vistazo a cmake-ide, que hace parte de la configuración automáticamente. https://github.com/atilaneves/cmake-ide

Esta publicación de blog también puede ayudar a https://vxlabs.com/2016/04/11/step-by-step-guide-to-c-navigation-and-completion-with-emacs-and-the-clang-based- rtags /

También puede echar un vistazo (o usar) mi propia configuración: https://github.com/jardon-u/dotfiles/blob/master/emacs.d/development/c/_init.el Yo uso una combinación de cmake- ide (descubrimiento de proyectos), ironía (para completar el código) y rtags (para la navegación del código). Estoy bastante seguro de que esto podría simplificarse ya que algunas funcionalidades se superponen entre cada modo, pero el resultado está al nivel que espero de un IDE moderno.

rtags también proporciona facilidades de refactorización de código, pero es bastante limitado (principalmente renombrado)

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım