سؤال

أنا أستخدم أ taglist البرنامج المساعد لبضعة أيام والآن قمت بتجربته باستخدام Javascript، ولكن في Javascript يعرض معلومات جزئية فقط أو لا يعرض أي معلومات.يبدو أن المشكلة قد تكون في مساحات الأسماء، لأن الوظائف موجودة

var namespace_name = {

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

};

أو هذا النوع من الوظائف (مجهول)

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

هل تعرف كيفية تصحيح هذه المشكلة؟

شكرًا لك

هل كانت مفيدة؟

المحلول

هل جربت شريط العلامات؟إنها فكرة أكثر حداثة لنفس الفكرة والتي تعمل بشكل أفضل مع JavaScript وتدعم علامات jsctags.

taglist on the left, tagbar on the right

قائمة العلامات على اليسار، 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.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top