Pregunta

Estoy usando un complemento taglist durante unos días y ahora lo probé con Javascript, pero en Javascript solo muestra información parcial o no muestra información.Parece que el problema podría estar en los espacios de nombres, porque las funciones están en

var namespace_name = {

f1: function() {
},
f2: function() {
},
.
.
.

};

o este tipo de funciones (anónimas)

var something = (function f() {
   }
   ...
})();

¿Sabe cómo corregir este problema?

gracias

¿Fue útil?

Solución

¿Probaste TagBar ? Es una versión más moderna de la misma idea que funciona mejor con JavaScript e incluso admite jsctags.

taglista a la izquierda, barra de etiquetas a la derecha

TagList a la izquierda, TagBar a la derecha.

TagList no funciona porque Exuberant ctags (el programa utilizado por TagList para indexar su código) no es muy bueno con JavaScript, especialmente las cosas modernas con devoluciones de llamada, cierres y funciones autoejecutables.

Por otro lado, TagBar usa jsctags para JavaScript si está disponible. Jsctags está hecho con JavaScript moderno en mente y, como tal, funciona mucho mejor.

Compare estos archivos de etiquetas generados con el siguiente código (según sus ejemplos):

var namespace_name = {

    f1: function() {
        window.alert("f1");
    },
    f2: function() {
        window.alert("f2");
    }
};
var something = (function f() {
    window.alert("something");
})();

Salida de $ ctags .:

// empty file expect for the header

Salida de $ jsctags .:

// skipped header
namespace_name  test.js /^var namespace_name = {$/;"    v   lineno:1    type:Object
f1  test.js /^\tf1: function() {$/;"    f   lineno:3    type:void function()
f2  test.js /^\tf2: function() {$/;"    f   lineno:6    type:void function()
f   test.js /^var something = (function f() {$/;"   f   lineno:11   type:void function()
something   test.js /^var something = (function f() {$/;"   v   lineno:11   type:undefined

Hay un montón de preguntas en SO sobre la personalización de ctags exuberantes para que funcione mejor con JavaScript: aquí y aquí .

Entonces, básicamente, hay dos formas de resolver su problema: personalizar ctags o usar tagbar + jsctags.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top