c++ sublimetext2 sublimetext ctags

c++ - ctags en texto sublime



sublimetext2 sublimetext (2)

Comandos de Shell:

$ cd /absolute_path_of_my_cpp_framework/ (1)

$ ctags -R --languages=c++ --langmap=c++:+.inl --fields=+iaS --extra=+q --totals=yes --verbose=yes (2)

$ ctags -a -R --languages=c++ /usr/include/c++/4.4.5/ --fields=+iaS --extra=+q --totals=yes --verbose=yes (3)

$ subl . (4)

Descripción:

(1) Vaya a la carpeta raíz de su proyecto para asegurarse de que el archivo de etiquetas se creará allí.

(2) Genere un nuevo archivo de etiquetas para todos los archivos C ++ en su proyecto, agregando soporte para archivos .inl, herencia, modificadores de acceso, alcance calificado por clase, etc.

(3) Agregue etiquetas para los encabezados de lib estándar de C ++ a su archivo de etiquetas generado.

(4) Abra la carpeta en texto sublime.

Referencias

  1. http://ctags.sourceforge.net/ctags.html
  2. https://www.chromium.org/developers/sublime-text
  3. http://www.tarosys.com/2014/07/adding-another-file-type-for-ctags.html
  4. Ctags exuberantes excluyen directorios
  5. Vim y Ctags: ignorar ciertos archivos al generar etiquetas
  6. https://www.topbug.net/blog/2012/03/17/generate-ctags-files-for-c-slash-c-plus-plus-source-files-and-all-of-their-included-header-files/

Acabo de descargar sublime text 2 beta 2182 en ubuntu 10.10 con Exuberant Ctags 5.8

Quiero usarlo para la codificación de c ++ y necesito un poco de finalización automática y navegación de código. (Estaba acostumbrado a eclipse con cdt)

Busqué en Google y encontré ctags una herramienta genial que puede hacerlo, y hay un complemento para el soporte de texto sublime here .

El problema es que quiero crear un archivo de etiqueta desde:

  1. c ++ estándar lib ( std::vector std::map etc )

  2. Todas las clases del marco que estoy usando.

El punto 1 es (creo) el mismo que el punto 2, solo tengo que crear una lista de etiquetas de std lib en mi /usr/include/c++/4.4.5/

así que descargué el complemento y lo instalé, hice una lista de etiquetas de esta manera:

$ cd /absolute_path_of_my_cpp_framework/ $ ctags -R *

/home/me/.config/sublime-text-2/Packages/CTagss/CTags.sublime-settings con esta línea:

"extra_tag_files" : [".gemtags", "/absolute_path_of_my_cpp_framework/tags"]

Ahora abro un archivo cpp, apunto el cursor sobre el nombre de una clase de mi marco y usé la ctrl+t ctrl+t y no sucedió nada. Solo este mensaje en la barra de abajo:

no se puede encontrar "class_name"

¿Alguien me puede ayudar?


Personalmente no uso Sublime Text, pero asumiendo que usa archivos de etiquetas de manera similar a vim, necesita generar información adicional para completar C ++.

Usa ctags con las siguientes opciones:

ctags -R --c++-kinds=+p --fields=+iaS --extra=+q --language-force=C++

Se tomó información de este artículo , que también proporciona copias de los encabezados de biblioteca estándar que puede utilizar para generar etiquetas.