plug-in taglist ne montre pas les fonctions Javascript
-
27-10-2019 - |
Question
J'utilise un plugin taglist
pendant quelques jours et maintenant je l'ai essayé avec JavaScript, mais il ne montre que Javascript informations ou aucune information partielle. Il semble que le problème pourrait être avec namespaces, car les fonctions sont
var namespace_name = {
f1: function() {
},
f2: function() {
},
.
.
.
};
ou ce genre de fonctions (anonyme)
var something = (function f() {
}
...
})();
Savez-vous comment corriger ce problème?
Merci
La solution
Avez-vous essayé Tagbar ? Il est une prise plus moderne sur la même idée qui fonctionne mieux avec JavaScript et supporte même jsctags.
TagList à gauche, Tagbar à droite.
TagList ne fonctionne pas parce que exubérants ctags (le programme utilisé par TagList pour indexer votre code) n'est pas très bon avec JavaScript, surtout les choses modernes avec callbacks, les fermetures et l'exécution des fonctions auto.
Par contre, Tagbar utilise jsctags pour JavaScript si elle est disponible. Jsctags est fait avec JavaScript moderne à l'esprit et que ces œuvres beaucoup mieux.
Comparez ces fichiers de balises générés contre le code suivant (en fonction de vos échantillons):
var namespace_name = {
f1: function() {
window.alert("f1");
},
f2: function() {
window.alert("f2");
}
};
var something = (function f() {
window.alert("something");
})();
Sortie de $ ctags .
:
// empty file expect for the header
Sortie 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
Il y a un tas de questions sur le SO sur la personnalisation ctags exubérante pour le faire fonctionner mieux avec JavaScript: ici et .
Donc, en gros, il y a deux façons de résoudre votre problème. Ctags customize ou utilisation Tagbar + jsctags