javascript - ctags, jsctags/doctorjs, Tagbar paso a paso
Necesito ayuda para configurar ctags, jsctags y tagbar para poder tener un entorno de edición de Javascript funcional. Tengo todo instalado pero no puedo entender cómo ctags y jsctags trabajan juntos, así que no sé cómo configurar correctamente. He buscado bastante en Google, pero la información está bastante fragmentada y carece de consistencia. Obtuve un error similar a este post, la configuración de ctags y tagbar no está sincronizada. Estoy en OS X Mountain Lion e iTerm2.
Cualquier ayuda sería muy apreciada. Unas instrucciones paso a paso serían excelentes.
Gracias.
Respuesta #1
Primero, tienes que entender que jsctags y ctags probablemente nunca estarán sincronizados. Incluso si solo tienes una función simple, ambos programas pueden generar información ligeramente diferente. Por lo tanto, se aconseja usar uno o el otro, pero no ambos.
En segundo lugar, según tengo entendido, TagBar no necesita ser configurado para usar jsctags en lugar de ctags. Si estás trabajando con JavaScript, simplemente usará jsctags por defecto si está disponible. TagBar no debería quejarse si tienes un jsctags que funcione.
Tercero, para sus propias funcionalidades relacionadas con etiquetas (:tag, :tselect, <C-]>, etc.), Vim solo depende de la presencia de uno o más archivos físicos tags. No importa si esos archivos son generados por ctags, jsctags o whatevertags, siempre que se generen correctamente.
Y ahora llegamos al cuarto punto, que es donde realmente está el problema: ni Tagbar ni su primo mayor TagList usan realmente un archivo físico tags. Acceden directamente a ctags o jsctags sin siquiera intentar usar o actualizar ningún archivo tags existente. Debido a eso, y al hecho de que TagBar solo maneja el búfer actual, tu propio archivo físico tags (y por lo tanto las funcionalidades relacionadas con etiquetas de Vim) y TagBar casi con seguridad estarán desincronizados. Incluso si usas el mismo indexador.
Entonces… te aconsejaría usar ya sea ctags o jsctags y olvidarte de cualquier asunto relacionado con sincronizar los tags de TagBar y de Vim, ya que ambas cosas son completamente independientes:
Usa TagBar para entender/navegar en tu búfer actual.
Usa las funcionalidades relacionadas con etiquetas de Vim para moverte por tu proyecto.
Pensamientos aleatorios…
Para que Vim pueda localizar fácilmente sus archivos
tags, debe poner esta línea en su~/.vimrc:set tags=./tags,tags;/./tagssignifica "buscar un archivotagsen el directorio del archivo actual",tagssignifica "buscar un archivotagsen el directorio de trabajo",;/significa "seguir buscando hacia arriba hasta llegar a/".El wiki de TagBar habla sobre un error en jsctags, asegúrate de que no te afecte.
jsctags es mejor que ctags cuando escribes JavaScript "moderno" y loco con muchas funciones de devolución de llamada y funciones autoejecutables. Si tu JavaScript es más tradicional, ctags puede ser suficiente.
