لا يعرض البرنامج المساعد Taglist وظائف Javascript
-
27-10-2019 - |
سؤال
أنا أستخدم أ taglist
البرنامج المساعد لبضعة أيام والآن قمت بتجربته باستخدام Javascript، ولكن في Javascript يعرض معلومات جزئية فقط أو لا يعرض أي معلومات.يبدو أن المشكلة قد تكون في مساحات الأسماء، لأن الوظائف موجودة
var namespace_name = {
f1: function() {
},
f2: function() {
},
.
.
.
};
أو هذا النوع من الوظائف (مجهول)
var something = (function f() {
}
...
})();
هل تعرف كيفية تصحيح هذه المشكلة؟
شكرًا لك
المحلول
هل جربت شريط العلامات؟إنها فكرة أكثر حداثة لنفس الفكرة والتي تعمل بشكل أفضل مع JavaScript وتدعم علامات jsctags.
قائمة العلامات على اليسار، TagBar على اليمين.
TagList لا يعمل لأن علامات ctags Exuberant (البرنامج الذي يستخدمه 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 حول تخصيص علامات ctag الوفيرة لجعلها تعمل بشكل أفضل مع JavaScript: هنا و هنا.
لذا، هناك طريقتان أساسيتان لحل مشكلتك:قم بتخصيص علامات ctag أو استخدم tagbar+jsctags.