هذا هو الأمر luacheck الذي يمكن تشغيله في موفر الاستضافة المجاني OnWorks باستخدام إحدى محطات العمل المجانية المتعددة عبر الإنترنت مثل Ubuntu Online أو Fedora Online أو محاكي Windows عبر الإنترنت أو محاكي MAC OS عبر الإنترنت
برنامج:
اسم
luacheck - وثائق luacheck
المحتويات:
قائمة OF تحذيرات
يتم تصنيف التحذيرات الصادرة عن Luacheck باستخدام رموز تحذير مكونة من ثلاثة أرقام. تحذير
يمكن عرض الرموز في مخرجات CLI باستخدام --رموز خيار CLI أو رموز خيار التكوين.
تحتوي الأخطاء أيضًا على رموز تبدأ بالصفر.
┌─────┬──────────────────────────── ─┐
│الكود │ الوصف │
├─────┼─────────────────────────────┤
│011 │ خطأ في بناء الجملة. │
├─────┼─────────────────────────────┤
│021 │ خيار مضمّن غير صالح. │
├─────┼─────────────────────────────┤
│022 │ دفع مضمن للأعلى │
│ │ التوجيه. │
├─────┼─────────────────────────────┤
│023 │ توجيه منبثق مضمّن مُحسّن. │
├─────┼─────────────────────────────┤
│111 │ إعداد عالمي غير محدد │
│ │ متغير. │
├─────┼─────────────────────────────┤
│112 │ تحور عالمي غير محدد │
│ │ متغير. │
├─────┼─────────────────────────────┤
│113 │ الوصول إلى عالمي غير محدد │
│ │ متغير. │
├─────┼─────────────────────────────┤
│121 │ إعداد عالمي للقراءة فقط │
│ │ متغير. │
├─────┼─────────────────────────────┤
│122 │ تحويل عالمي للقراءة فقط │
│ │ متغير. │
├─────┼─────────────────────────────┤
│131 │ عالمي غير مستخدم محدد ضمنيًا │
│ │ متغير. │
├─────┼─────────────────────────────┤
│211 │ متغير محلي غير مستخدم. │
├─────┼─────────────────────────────┤
│212 │ وسيطة غير مستخدمة. │
├─────┼─────────────────────────────┤
│213 │ متغير الحلقة غير المستخدمة. │
├─────┼─────────────────────────────┤
│221 │ يتم الوصول إلى المتغير المحلي ولكن │
│ │ لم يتم ضبطه أبدًا. │
├─────┼─────────────────────────────┤
│231 │ تم تعيين المتغير المحلي ولكن لم يتم تعيينه أبدًا │
│ │ الوصول إليها. │
├─────┼─────────────────────────────┤
│232 │ تم تعيين وسيطة ولكن لم يتم تعيينها أبدًا │
│ │ الوصول إليها. │
├─────┼─────────────────────────────┤
│233 │ تم تعيين متغير الحلقة ولكن لم يتم تعيين │
│ │ الوصول إليها. │
├─────┼─────────────────────────────┤
│311 │ القيمة المخصصة لمحلية │
│ │ المتغير غير مستخدم. │
└─────┴──────────────────────────────
│312 │ قيمة الوسيطة غير مستخدمة. │
├─────┼─────────────────────────────┤
│313 │ قيمة متغير الحلقة هي │
│ │ غير مستخدمة. │
├─────┼─────────────────────────────┤
│321 │ الوصول إلى المستوى المحلي غير المهيأ │
│ │ متغير. │
├─────┼─────────────────────────────┤
│411 │ إعادة تعريف المتغير المحلي. │
├─────┼─────────────────────────────┤
│412 │ إعادة تعريف الحجة. │
├─────┼─────────────────────────────┤
│413 │ إعادة تعريف متغير الحلقة. │
├─────┼─────────────────────────────┤
│421 │ تظليل متغير محلي. │
├─────┼─────────────────────────────┤
│422 │ تظليل الحجة. │
├─────┼─────────────────────────────┤
│423 │ تظليل متغير الحلقة. │
├─────┼─────────────────────────────┤
│431 │ تظليل قيمة أعلى. │
├─────┼─────────────────────────────┤
│432 │ تظليل وسيطة القيمة الأعلى. │
├─────┼─────────────────────────────┤
│433 │ تظليل حلقة رفع القيمة │
│ │ متغير. │
├─────┼─────────────────────────────┤
│511 │ رمز غير قابل للوصول. │
├─────┼─────────────────────────────┤
│512 │ يمكن تنفيذ الحلقة على الأكثر │
│ │ مرة واحدة. │
├─────┼─────────────────────────────┤
│521 │ تسمية غير مستخدمة. │
├─────┼─────────────────────────────┤
│531 │ الجانب الأيسر من المهمة │
│ │ قصير جدًا. │
├─────┼─────────────────────────────┤
│532 │ الجانب الأيسر من المهمة │
│ │ طويل جدًا. │
├─────┼─────────────────────────────┤
│541 │ فارغة do النهاية حاجز. │
├─────┼─────────────────────────────┤
│542 │ فارغة if فرع. │
├─────┼─────────────────────────────┤
│551 │ بيان فارغ. │
└─────┴──────────────────────────────
تجوال حول العالم المتغيرات
لكل ملف، يقوم Luacheck ببناء قائمة بالعناصر العالمية المحددة التي يمكن استخدامها هناك. بشكل افتراضي
يتم تعريف العناصر العالمية فقط من مكتبة Lua القياسية؛ يمكن إضافة الكرات العالمية المخصصة باستخدام
- الكرات خيار CLI أو غلوبالس خيار التكوين، وإصدار المكتبة القياسية يمكن أن يكون
المختار باستخدام - std خيار CLI أو الأمراض المنقولة جنسيا خيار التكوين. عندما يتم تعيين عالمي غير محدد،
متحورًا أو تم الوصول إليه، يصدر Luacheck تحذيرًا.
للقراءة فقط غلوبالس
بشكل افتراضي، جميع العناصر العالمية القياسية باستثناء _G و صفقة تم وضع علامة للقراءة فقط، لذلك
إعدادها أو تحورها ينتج عنه تحذير. يمكن إضافة عوالم مخصصة للقراءة فقط باستخدام
--قراءة الكرات خيار CLI أو read_globals خيار التكوين.
بشكل ضمني تعريف غلوبالس
يمكن تكوين Luacheck للنظر في الأمور العالمية المعينة في ظل بعض الظروف
محددة ضمنا. متى -d/--allow_define خيار CLI أو سمح_محدد خيار التكوين هو
عند استخدامها، تحددها جميع التعيينات إلى الكرات العالمية؛ متى -t/--allow_define_top خيار CLI أو
سمح_محدد_أعلى يتم استخدام خيار التكوين، والتعيينات إلى globals في وظيفة المستوى الأعلى
النطاق (المعروف أيضًا باسم القطعة الرئيسية) يحددها. يتم إصدار تحذير عندما يكون ضمنيًا
لا يتم الوصول إلى العالمية المحددة في أي مكان.
الأقسام
يمكن وضع علامة على الملفات كوحدات باستخدام -m/--وحدة خيار CLI أو وحدة خيار التكوين ل
محاكاة دلالات المهملة وحدة وظيفة. تم تعريف Globals ضمنيًا داخل ملف
تعتبر الوحدة جزءًا من واجهتها، ولا تكون مرئية في الخارج ولا يتم الإبلاغ عنها
باعتبارها غير مستخدمة. لا يُسمح بالإسناد إلى عوالم عالمية أخرى، حتى إلى تلك المحددة.
غير مستعمل المتغيرات و القيم
يقوم Luacheck بإنشاء تحذيرات لجميع المتغيرات المحلية غير المستخدمة باستثناء واحد مسمى _. كما
يكتشف المتغيرات التي تم تعيينها ولكن لم يتم الوصول إليها أو الوصول إليها ولكن لم يتم تعيينها مطلقًا.
غير مستعمل القيم و غير مهيأ المتغيرات
لكل قيمة مخصصة لمتغير محلي، يحسب Luacheck مجموعة من التعبيرات حيثما تكون
يمكن ان تستعمل. يتم إصدار تحذيرات للقيم غير المستخدمة (عندما لا يمكن استخدام القيمة
في أي مكان) وللوصول إلى المتغيرات غير المهيأة (عندما لا يمكن لأي قيم أن تصل إلى مستوى
تعبير). على سبيل المثال، في قيمة المقتطف التالية المخصصة لـ فو على السطر 1 غير مستخدم، و
متغير شريط غير مهيأ على السطر 9:
فو المحلي = expr1 ()
شريط محلي
إذا كان الشرط () ثم
فو = expr2()
شريط = expr3 ()
آخر
فو = expr4()
طباعة (شريط)
النهاية
العودة فو، شريط
ثانوي القيم و المتغيرات
تعتبر القيمة غير المستخدمة المخصصة لمتغير محلي ثانوية إذا كان أصلها هو العنصر الأخير
يتم استخدام RHS للتخصيص، ويتم استخدام قيمة أخرى من هذا العنصر. القيم الثانوية
تظهر عادةً عند وضع نتيجة استدعاء دالة على السكان المحليين، وبعضهم فقط
يتم استخدامها لاحقا. على سبيل المثال، هنا القيمة المخصصة ل b ثانوية، القيمة المخصصة ل c is
المستخدمة، والقيمة المخصصة ل a ببساطة غير مستخدم:
المحلية أ، ب، ج = و ()، ز ()
العودة ج
يكون المتغير ثانويًا إذا كانت جميع القيم المخصصة له ثانوية. في المقتطف أعلاه،
b هو متغير ثانوي.
يمكن إزالة التحذيرات المتعلقة بالقيم والمتغيرات الثانوية غير المستخدمة باستخدام
-s/- لا يوجد المرتبات الثانوية غير المستخدمة خيار CLI أو unused_ Secondaries خيار التكوين.
التظليل الإعلانات
يكتشف Luacheck إعلانات المتغيرات المحلية التي تظلل الإعلانات السابقة، ما لم
يتم تسمية المتغير _. إذا كان الإقرار السابق في نفس نطاق الإقرار الجديد،
يطلق عليه إعادة التعريف.
لاحظ أنه كذلك ليست من الضروري تحديد متغير محلي جديد عند الكتابة فوق وسيطة:
الدالة المحلية f(x)
local x = x أو "افتراضي" - سيء
النهاية
الدالة المحلية f(x)
x = x أو "افتراضي" - جيد
النهاية
السيطرة تدفق و البيانات تدفق مسائل
تم الكشف عن مشكلات تدفق التحكم وتدفق البيانات التالية:
· التعليمات البرمجية والحلقات التي لا يمكن الوصول إليها والتي يمكن تنفيذها مرة واحدة على الأكثر (على سبيل المثال بسبب خطأ
استراحة غير مشروطة)؛
· التسميات غير المستخدمة.
· المهام غير المتوازنة.
· كتل فارغة.
· البيانات الفارغة (الفواصل المنقوطة دون البيانات السابقة).
COMMAND خط INTERFACE
luacheck يقبل البرنامج الملفات والدلائل و com.rockspecs كحجج.
· نظرا للملف، luacheck سوف التحقق من ذلك.
· منح -, luacheck سوف تحقق stdin.
· نظرا للدليل، luacheck سوف يتحقق من جميع الملفات الموجودة فيه، ويختار فقط الملفات التي بها
.القمر التمديد إلا إذا --include-files يتم استخدام الخيار. تتطلب هذه الميزة
نظام LuaFileSystem (يتم تثبيته تلقائيًا إذا تم استخدام LuaRocks لتثبيت Luacheck).
· نظرا لrockspec (ملف مع .rockspec امتداد)، luacheck سوف تحقق جميع الملفات مع
.القمر الامتداد المذكور في rockspec في build.install.lua, build.install.bin و
build.modules الجداول.
إخراج luacheck يتكون من تقارير منفصلة لكل ملف تم فحصه وينتهي بـ
ملخص:
$ luacheck src
التحقق من تحذيرات src/bad_code.lua 5
src/bad_code.lua:3:16: مساعد متغير غير مستخدم
src/bad_code.lua:3:23: وسيطة متغيرة الطول غير مستخدمة
src/bad_code.lua:7:10: إعداد احتضان المتغير العام غير القياسي
src/bad_code.lua:8:10: تم تعريف المتغير opt مسبقًا كوسيطة في السطر 7
src/bad_code.lua:9:11: الوصول إلى متغير غير محدد hepler
التحقق من src/good_code.lua موافق
التحقق من خطأ src/python_code.lua 1
src/python_code.lua:1:6: متوقع '=' بالقرب من '__future__'
التحقق من تحذيرات src/unused_code.lua 9
src/unused_code.lua:3:18: وسيطة غير مستخدمة baz
src/unused_code.lua:4:8: متغير الحلقة غير المستخدم i
src/unused_code.lua:5:13: متغير غير مستخدم q
src/unused_code.lua:7:11: متغير الحلقة غير المستخدم أ
src/unused_code.lua:7:14: متغير الحلقة غير المستخدم ب
src/unused_code.lua:7:17: متغير الحلقة غير المستخدم ج
src/unused_code.lua:13:7: القيمة المخصصة للمتغير x غير مستخدمة
src/unused_code.lua:14:1: القيمة المخصصة للمتغير x غير مستخدمة
src/unused_code.lua:22:1: القيمة المخصصة للمتغير z غير مستخدمة
الإجمالي: 14 تحذيرًا / خطأ واحد في 1 ملفات
luacheck يخرج بـ 0 في حالة عدم حدوث أي تحذيرات أو أخطاء وبرقم موجب
غير ذلك.
أمر خط الخيارات
يمكن دمج الخيارات القصيرة التي لا تأخذ وسيطة في خيار واحد -qqu is
أي ما يعادل -q -q -u. بالنسبة للخيارات الطويلة، كلاهما --اختيار قيمنا or - الخيار = القيمة يمكن أن يكون
مستخدم.
يمكن استخدام الخيارات التي تأخذ عدة وسائط عدة مرات؛ --يتجاهل فو --يتجاهل شريط is
أي ما يعادل --يتجاهل فو شريط.
لاحظ أن الخيارات التي قد تأخذ عدة وسائط، مثل - الكرات، لا ينبغي أن تستخدم
مباشرة قبل الحجج الموضعية؛ منح - الكرات فو شريط file.lua, luacheck سوف
ضع في اعتبارك كل شيء فو, شريط و file.lua global ثم الذعر نظرًا لعدم وجود أسماء ملفات متبقية.
┌─────────────────────────────────┬─────────────── ───────────────────┐
│الخيار │ المعنى │
├─────────────────────────────────┼─────────────── ───────────────────┤
│-g | --غير عالمي │ قم بتصفية التحذيرات المتعلقة بـ │
│ │ المتغيرات العالمية. │
├─────────────────────────────────┼─────────────── ───────────────────┤
│-u | --غير مستخدم │ قم بتصفية التحذيرات المتعلقة بـ │
│ │ المتغيرات والقيم غير المستخدمة. │
├─────────────────────────────────┼─────────────── ───────────────────┤
│-r | --لا يوجد إعادة تعريف │ قم بتصفية التحذيرات المتعلقة بـ │
│ │ إعادة تعريف المتغيرات. │
├─────────────────────────────────┼─────────────── ───────────────────┤
│-a | --no-unused-args │ قم بتصفية التحذيرات المتعلقة بـ │
│ │ الوسائط والحلقة غير المستخدمة │
│ │ المتغيرات. │
├─────────────────────────────────┼─────────────── ───────────────────┤
│-s | - لا يوجد المرتبات الثانوية غير المستخدمة │ قم بتصفية التحذيرات المتعلقة بـ │
│ │ مجموعة المتغيرات غير المستخدمة معًا │
│ │ مع تلك المستعملة. │
│ │ │
│ │ انظر القيم الثانوية والمتغيرات │
├─────────────────────────────────┼─────────────── ───────────────────┤
│--لا ذاتي │ قم بتصفية التحذيرات المتعلقة بـ │
│ │ ضمني الذات دعوى. │
└─────────────────────────────────┴─────────────── ───────────────────┘
│- std │ قم بتعيين الكرات العالمية القياسية. يمكن │
│ │ كن واحداً من : │
│ │ │
│ │ · _G - عوالم لوا │
│ │ مترجم luacheck │
│ │ يعمل (افتراضي) ؛ │
│ │ │
│ │ · لوا 51 - عوالم لوا │
│ │ 5.1 ؛ │
│ │ │
│ │ · لوا 52 - عوالم لوا │
│ │ 5.2 ؛ │
│ │ │
│ │ · lua52c - عوالم لوا │
│ │ 5.2 مجمعة مع │
│ │ LUA_COMPAT_ALL; │
│ │ │
│ │ · لوا 53 - عوالم لوا │
│ │ 5.3 ؛ │
│ │ │
│ │ · lua53c - عوالم لوا │
│ │ 5.3 مجمعة مع │
│ │ LUA_COMPAT_5_2; │
│ │ │
│ │ · لواجيت - عوالم │
│ │ لواجيت 2.0; │
│ │ │
│ │ · ngx_lua - عوالم │
│ │ Openresty │
│ │ وحدة لوا-nginx مع │
│ │ لواجيت 2.0; │
│ │ │
│ │ · دقيقة - تقاطع │
│ │ عوالم لوا 5.1، لوا │
│ │ 5.2 و لواجيت 2.0؛ │
│ │ │
│ │ · ماكس - اتحاد العولمة │
│ │ من Lua 5.1 و Lua 5.2 و │
│ │ لواجيت 2.0; │
│ │ │
│ │ · ضبطت - تمت إضافة الكرات العالمية │
│ │ بواسطة Busted 2.0 ؛ │
│ │ │
│ │ · لا شيء - لا يوجد معيار │
│ │ العولمة. │
│ │ │
│ │ انظر باكجات of معيار │
│ │ غلوبالس │
├─────────────────────────────────┼─────────────── ───────────────────┤
│- الكرات [ ] │ أضف عوالم مخصصة أعلى │
│ │ تلك القياسية. │
├─────────────────────────────────┼─────────────── ───────────────────┤
│--قراءة الكرات [ ] │ إضافة عوالم للقراءة فقط. │
├─────────────────────────────────┼─────────────── ───────────────────┤
│--العوالم الجديدة [ ] │ قم بتعيين الكرات العالمية المخصصة. يزيل │
│ │ تمت إضافة الكرات العالمية المخصصة مسبقًا. │
├─────────────────────────────────┼─────────────── ───────────────────┤
│- عوالم القراءة الجديدة [ ] │ قم بتعيين عوالم للقراءة فقط. يزيل │
│ │ تمت إضافة عوالم للقراءة فقط │
│ │ سابقا. │
├─────────────────────────────────┼─────────────── ───────────────────┤
│-c | - كومبات │ ما يعادل - std ماكس. │
└─────────────────────────────────┴─────────────── ───────────────────┘
│-d | --السماح المعرفة │ السماح بتعريف العالميات │
│ │ ضمنيًا عن طريق تحديدها. │
│ │ │
│ │ انظر الكرات العالمية المحددة ضمنيًا │
├─────────────────────────────────┼─────────────── ───────────────────┤
│-t | --السماح-القمة المحددة │ السماح بتعريف العالميات │
│ │ ضمنيًا عن طريق تعيينها في │
│ │ نطاق المستوى الأعلى. │
│ │ │
│ │ انظر الكرات العالمية المحددة ضمنيًا │
├─────────────────────────────────┼─────────────── ───────────────────┤
│-m | --وحدة │ الحد من الرؤية ضمنا │
│ │ تعريف العوالم لملفاتهم. │
│ │ │
│ │ انظر الوحدات │
├─────────────────────────────────┼─────────────── ───────────────────┤
│--يتجاهل | -i [ ] │ تصفية مطابقة التحذيرات │
│ │ الأنماط. │
├─────────────────────────────────┼─────────────── ───────────────────┤
│--ممكن | -e [ ] │ لا تقم بتصفية التحذيرات │
│ │ مطابقة الأنماط. │
├─────────────────────────────────┼─────────────── ───────────────────┤
│--فقط | -o [ ] │ تصفية التحذيرات غير المطابقة │
│ │ الأنماط. │
├─────────────────────────────────┼─────────────── ───────────────────┤
│--لا مضمنة │ تعطيل الخيارات المضمنة. │
├─────────────────────────────────┼─────────────── ───────────────────┤
│- تكوين │ المسار إلى التكوين المخصص │
│ │ الملف (الافتراضي: .luacheckrc). │
├─────────────────────────────────┼─────────────── ───────────────────┤
│--لا التكوين │ لا تبحث عن العرف │
│ │ ملف التكوين. │
├─────────────────────────────────┼─────────────── ───────────────────┤
│--اسم الملف │ استخدم اسم ملف آخر في الإخراج، │
│ │ لاختيار التكوين │
│ │ التجاوزات والملف │
│ │ التصفية. │
├─────────────────────────────────┼─────────────── ───────────────────┤
│--exclude-files [ ] │ لا تتحقق من مطابقة الملفات │
│ │ هذه الأنماط اللامعة. │
│ │ الكرات العودية مثل **/*.lua │
│ │ مدعومة. │
├─────────────────────────────────┼─────────────── ───────────────────┤
│--include-files [ ] │ لا تتحقق من عدم مطابقة الملفات │
│ │ هذه الأنماط اللامعة. │
├─────────────────────────────────┼─────────────── ───────────────────┤
│--مخبأ [ ] │ المسار إلى ملف ذاكرة التخزين المؤقت. (الافتراضي: │
│ │ .luacheckcache). نرى Caching │
├─────────────────────────────────┼─────────────── ───────────────────┤
│--لا مخبأ │ لا تستخدم ذاكرة التخزين المؤقت. │
├─────────────────────────────────┼─────────────── ───────────────────┤
│-j | --وظائف │ تحقق الملفات بالتوازي │
│ │ يتطلب لولانيس. │
└─────────────────────────────────┴─────────────── ───────────────────┘
│--المنسق │ استخدم المنسق المخصص. │
│ │ يجب أن تكون وحدة │
│ │ الاسم أو أحد: │
│ │ │
│ │ · TAP - اختبار أي شيء │
│ │ منسق البروتوكول ؛ │
│ │ │
│ │ · أداة JUnit - جونيت XML │
│ │ المنسق. │
│ │ │
│ │ · عادي - بسيط │
│ │ تحذير لكل سطر │
│ │ المنسق. │
│ │ │
│ │ · الافتراضي - قياسي │
│ │ المنسق. │
├─────────────────────────────────┼─────────────── ───────────────────┤
│-q | --هادئ │ قمع إخراج التقرير للملفات │
│ │ دون تحذيرات. │
│ │ │
│ │ · -Qq - قمع الإخراج │
│ │ من التحذيرات. │
│ │ │
│ │ · -qqq - الإخراج فقط │
│ │ ملخص. │
├─────────────────────────────────┼─────────────── ───────────────────┤
│--رموز │ إظهار رموز التحذير. │
├─────────────────────────────────┼─────────────── ───────────────────┤
│--نطاقات │ عرض نطاقات الأعمدة ذات الصلة │
│ │ للتحذيرات. │
├─────────────────────────────────┼─────────────── ───────────────────┤
│- لا لون │ لا تلوين الإخراج. │
├─────────────────────────────────┼─────────────── ───────────────────┤
│-v | --الإصدار │ عرض إصدار Luacheck و│
│ │ التبعيات والخروج. │
├─────────────────────────────────┼─────────────── ───────────────────┤
│-h | --مساعدة │ إظهار المساعدة والخروج. │
└─────────────────────────────────┴─────────────── ───────────────────┘
أنماط
خيارات CLI --يتجاهل, --ممكن و --فقط وتسمح خيارات التكوين المقابلة بالتصفية
التحذيرات باستخدام مطابقة الأنماط على أكواد التحذير أو أسماء المتغيرات أو كليهما. إذا كان النمط
تحتوي على شرطة مائلة، الجزء الذي يسبق الشرطة المائلة يطابق رمز التحذير والجزء الذي يليها يطابق رمز التحذير
اسم المتغير. بخلاف ذلك، إذا كان النمط يحتوي على حرف أو شرطة سفلية، فإنه يتطابق
اسم المتغير. وإلا فإنه يطابق رمز التحذير. على سبيل المثال:
┌───────────────────────────────────────
│نمط │ مطابقة التحذيرات │
├────────┼───────────────────────────
│4.2 │ إعلانات التظليل لـ │
│ │ الحجج أو إعادة تعريفها. │
├────────┼───────────────────────────
│.*_ │ تحذيرات تتعلق بالمتغيرات │
│ │ مع _ لاحقة. │
├────────┼───────────────────────────
│4.2/.*_ │ إعلانات التظليل لـ │
│ │ الحجج مع _ لاحقة أو │
│ │ إعادة تعريفها. │
└───────────────────────────────────────
ما لم يتم تثبيتها بالفعل، يتم تثبيت الأنماط المطابقة لأسماء المتغيرات على كلا الجانبين و
يتم تثبيت الأنماط المطابقة لرموز التحذير في بداياتها. هذا يسمح للمرء أن
تصفية التحذيرات حسب الفئة (على سبيل المثال --فقط 1 ويركز luacheck بشأن التحذيرات العالمية).
باكجات of معيار غلوبالس
خيار سطر الأوامر --stds يسمح بدمج المجموعات المضمنة الموضحة أعلاه باستخدام +. على سبيل المثال،
- std ماكس ما يعادل --std=lua51+lua52+lua53. تضيف علامة الزائد البادئة مجموعات جديدة إلى
الافتراضي بدلاً من استبداله. على سبيل المثال، - std + ضبطت مناسبة للتحقق
ملفات الاختبار التي تستخدم ضبطت إطار الاختبار. يمكن تحديد مجموعات مخصصة من الكرات العالمية بواسطة
تحور المتغير العالمي الأمراض المنقولة جنسيا في التكوين. راجع custom_stds
المنسقون
خيار سطر الأوامر --المنسق يسمح باختيار منسق مخصص ل luacheck انتاج. عرف
المنسق عبارة عن وحدة Lua تقوم بإرجاع دالة بثلاث وسائط: التقرير كما تم إرجاعه بواسطة
luacheck الوحدة النمطية (انظر التقرير)، ومجموعة من أسماء الملفات وجدول الخيارات. تحتوي الخيارات
القيم المخصصة ل هدوء, اللون, قصر, رموز, نطاقات و المنسق الخيارات في CLI أو
التكوين. يجب أن تقوم دالة المنسق بإرجاع سلسلة.
Caching
إذا كان LuaFileSystem متاحًا، فيمكن لـ Luacheck تخزين نتائج فحص الملفات مؤقتًا. على اللاحقة
الشيكات، فقط الملفات التي تغيرت منذ آخر فحص سيتم إعادة فحصها، وتحسينها
وقت التشغيل بشكل ملحوظ. لا يؤدي تغيير الخيارات (على سبيل المثال تحديد عوالم إضافية) إلى حدوث ذلك
إبطال ذاكرة التخزين المؤقت. يمكن تمكين التخزين المؤقت باستخدام --مخبأ خيار أو مخبأ التكوين
اختيار. استخدام --مخبأ دون حجة أو الإعداد مخبأ خيار التكوين ل صحيح اطقم كامله
.luacheckcache كملف ذاكرة التخزين المؤقت. لاحظ أن --مخبأ يجب أن تستخدم في كل مرة luacheck is
تشغيل، وليس في الجولة الأولى فقط.
مستقر الواجهة لـ رئيس التحرير الإضافات و أدوات
يمكن أن تتغير واجهة سطر الأوامر الخاصة بـ Luacheck بين الإصدارات الثانوية. ابتداء من 0.11.0
الإصدار، الواجهة التالية مضمونة على الأقل حتى الإصدار 1.0.0، ويجب أن تكون كذلك
تستخدم بواسطة الأدوات التي تستخدم مخرجات Luacheck، على سبيل المثال المكونات الإضافية للمحرر.
· يجب أن يبدأ Luacheck من الدليل الذي يحتوي على الملف المحدد.
· يمكن تمرير الملف من خلال stdin باستخدام - كوسيطة أو باستخدام ملف مؤقت. حقيقي
يجب أن يتم تمرير اسم الملف باستخدام --اسم الملف الخيار.
· ينبغي استخدام المنسق العادي. ويخرج مشكلة واحدة (تحذير أو خطأ) في كل سطر.
· للحصول على موقع الخطأ الدقيق، --نطاقات يمكن استخدام الخيار. كل سطر يبدأ بالحقيقي
اسم الملف (تم تمريره باستخدام --اسم الملف)، تليها : : - :,
أين هو رقم السطر الذي حدثت فيه المشكلة و - is
نطاق شامل من أعمدة الرمز المميز المتعلقة بالمشكلة. يبدأ الترقيم من 1. إذا
--نطاقات لا يتم استخدامه، ولا تتم طباعة عمود النهاية والشرطة.
· للحصول على رموز التحذير والخطأ، --رموز يمكن استخدام الخيار. لكل سطر، سلسلة فرعية
بين قوسين يحتوي على رمز الإصدار المكون من ثلاثة أرقام، مسبوقًا بـ E للأخطاء و W
للتحذيرات. يشير عدم وجود مثل هذه السلسلة الفرعية إلى خطأ فادح (مثل خطأ الإدخال/الإخراج).
· باقي السطر رسالة تحذيرية.
إذا كان التوافق مع إصدار Luacheck الأقدم مطلوبًا، فسيتم إخراج luacheck --مساعدة يمكن أن يكون
تستخدم للحصول على نسخته. إذا كان يحتوي على سلسلة 0. .، حيث هو في
الأقل 11 و التصحيح إذا كان أي رقم، فيجب استخدام الواجهة الموضحة أعلاه.
CONFIGURATION FILE
luacheck يحاول تحميل التكوين من .luacheckrc الملف في الدليل الحالي. لو
لم يتم العثور عليه، فسوف يبحث عنه في الدليل الأصلي، وهكذا، حتى يصل إليه
يصل إلى جذر نظام الملفات. يمكن تعيين المسار إلى التكوين باستخدام - تكوين الخيار، في هذه الحالة
سيتم استخدامه أثناء التحميل العودي. يمكن تعطيل تحميل التكوين باستخدام --لا التكوين
العلم.
التكوين هو مجرد برنامج نصي Lua يتم تنفيذه بواسطة luacheck. قد يقوم بتعيين خيارات مختلفة من خلال
التعيين إلى الكرات العالمية أو عن طريق إرجاع جدول بأسماء الخيارات كمفاتيح.
التكوين الخيارات
┌─────────────────┬──────────────── ───────┬── ─────────────────┐
│ الخيار │ النوع │ القيمة الافتراضية │
├─────────────────┼──────────────── ───────┼── ─────────────────┤
│اللون │ منطقية │ صحيح │
├─────────────────┼──────────────── ───────┼── ─────────────────┤
│رموز │ منطقية │ زائف │
└─────────────────┴──────────────── ───────┴── ─────────────────┘
│المنسق │ سلسلة أو وظيفة │ "إفتراضي" │
├─────────────────┼──────────────── ───────┼── ─────────────────┤
│مخبأ │ منطقية أو سلسلة │ زائف │
├─────────────────┼──────────────── ───────┼── ─────────────────┤
│وظائف │ عدد صحيح موجب │ 1 │
├─────────────────┼──────────────── ───────┼── ─────────────────┤
│Except_files │ مجموعة من السلاسل │ {} │
├─────────────────┼──────────────── ───────┼── ─────────────────┤
│include_files │ مجموعة من السلاسل │ (تشمل جميع الملفات) │
├─────────────────┼──────────────── ───────┼── ─────────────────┤
│شامل │ منطقية │ صحيح │
├─────────────────┼──────────────── ───────┼── ─────────────────┤
│غير المستخدمة │ منطقية │ صحيح │
├─────────────────┼──────────────── ───────┼── ─────────────────┤
│إعادة تعريف │ منطقية │ صحيح │
├─────────────────┼──────────────── ───────┼── ─────────────────┤
│unused_args │ منطقية │ صحيح │
├─────────────────┼──────────────── ───────┼── ─────────────────┤
│unused_ Secondaries │ منطقية │ صحيح │
├─────────────────┼──────────────── ───────┼── ─────────────────┤
│الذات │ منطقية │ صحيح │
├─────────────────┼──────────────── ───────┼── ─────────────────┤
│الأمراض المنقولة جنسيا │ سلسلة أو مجموعة من │ "_ز" │
│ │ العوالم القياسية │ │
├─────────────────┼──────────────── ───────┼── ─────────────────┤
│غلوبالس │ مجموعة من السلاسل │ {} │
├─────────────────┼──────────────── ───────┼── ─────────────────┤
│new_globals │ مجموعة من السلاسل │ (لا تكتب فوقها) │
├─────────────────┼──────────────── ───────┼── ─────────────────┤
│read_globals │ مجموعة من السلاسل │ {} │
├─────────────────┼──────────────── ───────┼── ─────────────────┤
│new_read_globals │ مجموعة من السلاسل │ (لا تكتب فوقها) │
├─────────────────┼──────────────── ───────┼── ─────────────────┤
│COMPAT │ منطقية │ زائف │
├─────────────────┼──────────────── ───────┼── ─────────────────┤
│سمح_محدد │ منطقية │ زائف │
├─────────────────┼──────────────── ───────┼── ─────────────────┤
│سمح_محدد_أعلى │ منطقية │ زائف │
├─────────────────┼──────────────── ───────┼── ─────────────────┤
│وحدة │ منطقية │ زائف │
├─────────────────┼──────────────── ───────┼── ─────────────────┤
│تجاهل │ مجموعة من الأنماط (انظر │ {} │
│ │ الأنماط) │ │
├─────────────────┼──────────────── ───────┼── ─────────────────┤
│تمكين │ مجموعة من الأنماط │ {} │
├─────────────────┼──────────────── ───────┼── ─────────────────┤
│فقط │ مجموعة من الأنماط │ (لا تقم بالتصفية) │
├─────────────────┼──────────────── ───────┼── ─────────────────┤
│مضمنة │ منطقية │ صحيح │
└─────────────────┴──────────────── ───────┴── ─────────────────┘
مثال على التكوين الذي يجعل luacheck التأكد من أن الكرات العالمية فقط من المحمولة
يتم استخدام تقاطعات Lua 5.1 وLua 5.2 وLua 5.3 وLuaJIT 2.0، بالإضافة إلى تعطيلها
الكشف عن الحجج غير المستخدمة:
الأمراض المنقولة جنسيا = "دقيقة"
تجاهل = {"212"}
Custom اطقم كامله of غلوبالس
الأمراض المنقولة جنسيا يسمح الخيار بتعيين مجموعة قياسية مخصصة من العالميات باستخدام جدول. في ذلك الجدول،
مفاتيح السلسلة هي مفاتيح عمومية، والسلسلة الموجودة في جزء المصفوفة هي مفاتيح عمومية للقراءة فقط.
بالإضافة إلى ذلك، يمكن إعطاء أسماء للمجموعات المخصصة عن طريق إجراء تغييرات على global الأمراض المنقولة جنسيا عامل. ل
على سبيل المثال ، عند استخدام غاز البترول المسال المكتبة، فمن المنطقي الوصول إلى وظائفها بشكل مقتضب
الكرة العالمية. في هذه الحالة، يسمح التكوين التالي بإزالة النتائج الإيجابية الخاطئة المتعلقة بـ
الوصول العالمي بسهولة:
stds.lpeg = يتطلب "lpeg"
lpeg المحلي = يتطلب "lpeg"
تحليل الدالة المحلية 1 (...)
- تستخدم هذه الوظيفة وظائف lpeg فقط كوظائف عالمية.
_ENV المحلي = lpeg
- luacheck: std lpeg
رقم محلي، مسافة = R "09"، S " "
--...
النهاية
تحليل الدالة المحلية 2 (...)
- تستخدم هذه الوظيفة وظائف lpeg بالإضافة إلى الوظائف العالمية القياسية.
_ENV المحلي = setmetatable({}، {__index = function(_, k) return _ENV[k] أو lpeg[k] end})
-- luacheck: std +lpeg
رقم محلي، مسافة = R "09"، S " "
الرقم المحلي = C (رقم ^ 1) / رقم الصوت
--...
النهاية
لكل ملف و لكل مسار يتجاوز
البيئة التي luacheck يقوم بتحميل التكوين الذي يحتوي على ملف عالمي خاص ملفات. عندما
التحقق من ملف , luacheck سوف يتجاوز الخيارات من التكوين الرئيسي مع الإدخالات
تبدأ من ملفات[ ] و ملفات[ ]، قم بتطبيق الإدخالات على المسارات الأقصر أولاً. ل
على سبيل المثال، يعمل التكوين التالي على إعادة تمكين الكشف عن الوسائط غير المستخدمة فقط للملفات الموجودة
سرك/ديرولكن ليس ل src/dir/myfile.lua، ويسمح باستخدام ضبطت العولمة داخل المواصفات /:
الأمراض المنقولة جنسيا = "دقيقة"
تجاهل = {"212"}
الملفات["src/dir"] = {enable = {"212"}}
الملفات["src/dir/myfile.lua"] = {تجاهل = {"212"}}
الملفات["المواصفات"] = {std = "+busted"}
نلاحظ أن ملفات الجدول يدعم التنشيط التلقائي، لذلك
الملفات["myfile.lua"].ignore = {"212"}
و
الملفات["myfile.lua"] = {تجاهل = {"212"}}
متكافئة.
في النسق OPTIONS
يدعم Luacheck تعيين بعض الخيارات مباشرة في الملفات المحددة باستخدام السطر
تعليقات التكوين يبدأ تعليق التكوين المضمن بـ لواتشيك: ضع الكلمة المناسبة،
ربما بعد بعض المسافات البيضاء. يجب أن يحتوي نص التعليق على مفصولة بفواصل
الخيارات، حيث يتكون استدعاء الخيار من اسمه بالإضافة إلى وسائط مفصولة بمسافات. ال
الخيارات التالية مدعومة:
┌───────────────────┬───────────────────────────── ─────┐
│ الخيار │ عدد الوسائط │
├───────────────────┼───────────────────────────── ─────┤
│ العالمية │ 0 │
├───────────────────┼───────────────────────────── ─────┤
│ غير مستخدم │ 0 │
├───────────────────┼───────────────────────────── ─────┤
│إعادة تعريف │ 0 │
├───────────────────┼───────────────────────────── ─────┤
│الوسائط غير المستخدمة │ 0 │
├───────────────────┼───────────────────────────── ─────┤
│ المرتبات الثانية غير المستخدمة │ 0 │
├───────────────────┼───────────────────────────── ─────┤
│ النفس │ 0 │
└───────────────────┴───────────────────────────── ─────┘
│متوافق │ 0 │
├───────────────────┼───────────────────────────── ─────┤
│الوحدة │ 0 │
├───────────────────┼───────────────────────────── ─────┤
│ السماح المحدد │ 0 │
├───────────────────┼───────────────────────────── ─────┤
│السماح بأعلى محدد │ 0 │
├───────────────────┼───────────────────────────── ─────┤
│std │ 1 │
├───────────────────┼───────────────────────────── ─────┤
│العالمية │ 0+ │
├───────────────────┼───────────────────────────── ─────┤
│ عوالم جديدة │ 0+ │
├───────────────────┼───────────────────────────── ─────┤
│اقرأ العوالم │ 0+ │
├───────────────────┼───────────────────────────── ─────┤
│ قراءة عالمية جديدة │ 0+ │
├───────────────────┼───────────────────────────── ─────┤
│ تجاهل │ 0+ (بدون وسيطات كل شيء │
│ │ تم تجاهله) │
├───────────────────┼───────────────────────────── ─────┤
│تمكين │ 1+ │
├───────────────────┼───────────────────────────── ─────┤
│ فقط │ 1+ │
└───────────────────┴───────────────────────────── ─────┘
يمكن إضافة البادئة إلى الخيارات التي لا تحتوي على وسيطات لا لقلب معناها. على سبيل المثال
--لواتشيك: لا غير المستخدمة وسائط تعطيل تحذيرات الوسيطة غير المستخدمة.
يعتمد جزء الملف المتأثر بالخيار المضمّن على مكان وضعه. إذا كان هناك أي
الكود الموجود على السطر الذي يحتوي على الخيار، سيتأثر هذا السطر فقط؛ خلاف ذلك، كل شيء حتى
نهاية الإغلاق الحالي. على وجه الخصوص، الخيارات المضمنة في الجزء العلوي من الملف
يؤثر على كل ذلك:
- luacheck: globals g1 g2، تجاهل foo
local foo = g1(g2) - لم يتم إصدار أي تحذيرات.
- لم يتم الإبلاغ عن الوظيفة غير المستخدمة التالية.
الوظيفة المحلية f () - luacheck: تجاهل
- لواشيك: جلوبلز g3
g3() - بدون تحذير.
النهاية
g3() - يتم إصدار تحذير كخيار مضمن يحدد وظيفة g3 المتأثرة فقط f.
للتحكم الدقيق في استخدام رؤية الخيار المضمن لواتشيك: دفع و لواتشيك:
فرقعة التوجيهات:
- luacheck: اضغط على تجاهل foo
foo() - بدون تحذير.
- لواشيك: البوب
foo() - يتم إصدار تحذير.
يمكن تعطيل الخيارات المضمنة بالكامل باستخدام --لا مضمنة خيار CLI أو مضمنة التكوين
الخيار.
لواتشيك MODULE
استعمل محلي luacheck = تطلب "لواتشيك" نعم luacheck وحدة. أنه يحتوي على
الوظائف التالية:
· luacheck.get_report (المصدر): نظرا لسلسلة المصدر، يتم إرجاع بيانات التحليل (جدول).
· luacheck.process_reports(التقارير، خيارات): مجموعة العمليات من تقارير التحليل و
ينطبق الخيارات. التقارير[i] يستخدم الخيارات, الخيارات[i], الخيارات[i][1], الخيارات[i][2]...
كخيارات، متجاوزة بعضها البعض بهذا الترتيب. جدول الخيارات هو جدول يحتوي على حقول
على غرار خيارات التكوين؛ انظر الخيارات. تقارير التحليل مع المجال مميت يتم تجاهلها.
تقارير_العملية إرجاع التقرير النهائي، انظر تقرير شكل.
· luacheck.check_strings(المصادر، خيارات): يتحقق من مجموعة المصادر باستخدام الخيارات والعائدات
التقرير الأخير. الجداول مع المجال مميت في غضون تقارير عن مصادر العطور بدون العلبة يتم تجاهل المصفوفة.
· luacheck.check_files(الملفات، خيارات): يتحقق من مجموعة الملفات باستخدام الخيارات، ويعيدها بشكل نهائي
تقرير. يمكن تمرير مقابض الملفات المفتوحة بدلاً من أسماء الملفات، وفي هذه الحالة سيتم تمريرها
قراءة حتى EOF ومغلقة.
· luacheck.get_message(المشكلة): إرجاع رسالة سلسلة لمشكلة ما، انظر تقرير شكل.
luacheck._VERSION يحتوي على إصدار Luacheck كسلسلة في الكبرى.الصغرى.التصحيح تنسيق.
باستخدام luacheck كوظيفة تعادل الاتصال luacheck.check_files.
تقرير شكل
التقرير النهائي عبارة عن مجموعة من تقارير الملفات بالإضافة إلى الحقول تحذيرات, أخطاء و قاتلون
تحتوي على العدد الإجمالي للتحذيرات والأخطاء والأخطاء الفادحة، على التوالي.
تقرير الملف عبارة عن مجموعة من المشكلات (تحذيرات أو أخطاء). إذا حدث خطأ فادح في حين
فحص ملف، سيكون تقريرها مميت الحقل الذي يحتوي على نوع الخطأ.
المشكلة هي جدول مع الحقل الكود مع الإشارة إلى نوعه (انظر تحذيرات)، والحقول خط,
عمود و end_column مع الإشارة إلى مصدر التحذير. الاسم قد يحتوي الحقل على الاسم
ذات الصلة المتغير. يمكن أيضًا أن تحتوي المشكلات من بعض الأنواع على حقول إضافية:
┌──────────────────────────────────────────
│الأكواد │ الحقول الإضافية │
├──────┼────────────────────────────────
│011 │ MSG يحتوي الحقل على خطأ في بناء الجملة │
│ │ رسالة. │
├──────┼────────────────────────────────
│111 │ وحدة يشير الحقل إلى أن │
│ │ التعيين إلى غير وحدة │
│ │ متغير عالمي. │
├──────┼────────────────────────────────
│211 │ ظائفها يشير الحقل إلى أن غير المستخدمة │
│ │ المتغير هو وظيفة. │
├──────┼────────────────────────────────
│4.. │ prev_line و prev_column الحقول │
│ │ يحتوي على موقع │
│ │ التعريف المكتوب. │
└──────┴────────────────────────────────
قد تكون الحقول الأخرى موجودة لأسباب داخلية.
هذه وثائق للإصدار 0.13.0 من لواتشيك، لتر ل لوا.
استخدم luacheck عبر الإنترنت باستخدام خدمات onworks.net