Вы пробовали TagBar ? Это более современный подход к той же идее, который лучше работает с JavaScript и даже поддерживает jsctags.
TagList слева, TagBar справа.
TagList не работает, потому что Exuberant ctags (программа, используемая TagList для индексации вашего кода) не очень хорошо работает с JavaScript, особенно современные вещи с обратными вызовами, замыканиями и самовыполняющимися функциями.
С другой стороны, TagBar использует jsctags для JavaScript, если он доступен. Jsctags создан с учетом современного JavaScript и поэтому работает намного лучше.
Сравните эти файлы тегов, сгенерированные со следующим кодом (на основе ваших примеров):
var namespace_name = {
f1: function() {
window.alert("f1");
},
f2: function() {
window.alert("f2");
}
};
var something = (function f() {
window.alert("something");
})();
Выход $ ctags .
:
// empty file expect for the header
Выход $ 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
В SO есть несколько вопросов о настройке exuberant ctags для улучшения работы с JavaScript: здесь и здесь .
Итак, в принципе, есть два способа решения вашей проблемы: настроить ctags или использовать tagbar + jsctags.