این فرمان luacheck است که می تواند در ارائه دهنده هاست رایگان OnWorks با استفاده از یکی از چندین ایستگاه کاری آنلاین رایگان ما مانند Ubuntu Online، Fedora Online، شبیه ساز آنلاین ویندوز یا شبیه ساز آنلاین 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 یا STD گزینه پیکربندی وقتی یک جهانی تعریف نشده تنظیم می شود،
جهش یافته یا قابل دسترسی، Luacheck یک هشدار تولید می کند.
فقط خواندنی جهان
به طور پیش فرض، همه جهانی های استاندارد به جز _G و بسته به عنوان فقط خواندنی علامت گذاری شده اند، به طوری که
تنظیم یا جهش آنها یک هشدار تولید می کند. جهانی های سفارشی فقط خواندنی را می توان با استفاده از آن اضافه کرد
--خواندن-جهانی گزینه CLI یا read_globals گزینه پیکربندی
بطور ضمنی مشخص جهان
Luacheck را می توان به گونه ای پیکربندی کرد که جهانی های اختصاص داده شده تحت برخی شرایط را در نظر بگیرد
به طور ضمنی تعریف شده است. چه زمانی -d/--allow_defined گزینه CLI یا allow_defined گزینه config است
استفاده می شود، تمام انتساب به جهانی ها آنها را تعریف می کند. چه زمانی -t/--allow_defined_top گزینه CLI یا
allow_defined_top از گزینه config استفاده می شود، انتساب به جهانی ها در عملکرد سطح بالا
scope (همچنین به عنوان قطعه اصلی شناخته می شود) آنها را تعریف می کند. اخطار زمانی تولید میشود که به طور ضمنی
تعریف شده جهانی در هیچ کجا قابل دسترسی نیست.
ماژول ها
فایل ها را می توان به عنوان ماژول با استفاده از علامت گذاری کرد -m/--مدول گزینه CLI یا واحد گزینه پیکربندی به
شبیه سازی معنایی منسوخ شده واحد عملکرد. جهانی ها به طور ضمنی در داخل a تعریف شده اند
ماژول بخشی از رابط آن محسوب می شود، در خارج قابل مشاهده نیست و گزارش نمی شود
به عنوان استفاده نشده انتساب به سایر جهانی ها مجاز نیست، حتی به موارد تعریف شده.
استفاده نشده متغیرها و ارزش
Luacheck هشدارهایی را برای همه متغیرهای محلی استفاده نشده به جز یکی با نام ایجاد می کند _. این نیز
متغیرهایی را شناسایی می کند که تنظیم شده اند اما هرگز به آنها دسترسی یا دسترسی پیدا نکرده اند اما هرگز تنظیم نشده اند.
استفاده نشده ارزش و غیر مستقیم متغیرها
برای هر مقدار تخصیص داده شده به یک متغیر محلی، Luacheck مجموعه ای از عبارات را محاسبه می کند
می تواند استفاده شود. اخطارها برای مقادیر استفاده نشده تولید می شوند (زمانی که نمی توان از یک مقدار استفاده کرد
در هر جایی) و برای دسترسی به متغیرهای بدون مقدار اولیه (زمانی که هیچ مقداری نمی تواند به a برسد
اصطلاح). به عنوان مثال در مقدار قطعه زیر که به آن اختصاص داده شده است فو در خط 1 استفاده نشده است، و
متغیر بار در خط 9 غیر اولیه است:
local foo = expr1()
نوار محلی
if condition() سپس
foo = expr2()
نوار = expr3()
دیگر
foo = expr4()
چاپ (نوار)
پایان
بازگشت فو، بار
دوم ارزش و متغیرها
مقدار استفاده نشده تخصیص یافته به یک متغیر محلی ثانویه است اگر مبدا آن آخرین مورد باشد
RHS انتساب، و مقدار دیگری از آن آیتم استفاده می شود. ارزش های ثانویه
معمولاً زمانی ظاهر می شود که نتیجه یک فراخوانی تابع در محلی ها و فقط برخی از آنها قرار می گیرد
بعدا استفاده می شوند. به عنوان مثال، در اینجا مقدار اختصاص داده شده به b ثانویه است، مقدار به c is
استفاده می شود و مقدار به آن اختصاص می یابد a به سادگی استفاده نشده است:
محلی a، b، c = f()، g()
بازگشت ج
یک متغیر در صورتی ثانویه است که همه مقادیر تخصیص داده شده به آن ثانویه باشند. در قطعه بالا،
b یک متغیر ثانویه است.
هشدارهای مربوط به مقادیر و متغیرهای ثانویه استفاده نشده را می توان با استفاده از آن حذف کرد
-s/--بدون استفاده-ثانویه گزینه CLI یا unused_secondaries گزینه پیکربندی
سایه اعلامیه ها
Luacheck اعلانهای متغیرهای محلی را که اعلانهای قبلی را سایه میزنند شناسایی میکند، مگر اینکه
متغیر نامگذاری شده است _. اگر اظهارنامه قبلی در همان محدوده اظهارنامه جدید باشد،
به آن تعریف مجدد می گویند.
توجه داشته باشید که هست نه برای تعریف یک متغیر محلی جدید هنگام بازنویسی یک آرگومان ضروری است:
تابع محلی f(x)
محلی x = x یا "پیش فرض" -- بد
پایان
تابع محلی f(x)
x = x یا "پیش فرض" -- خوب است
پایان
کنترل جریان و داده ها جریان مسائل
جریان کنترل و مشکلات جریان داده زیر شناسایی می شوند:
· کدها و حلقههای غیرقابل دسترسی که حداکثر یکبار قابل اجرا هستند (مثلاً به دلیل
استراحت بدون قید و شرط)؛
· برچسب های استفاده نشده.
· تکالیف نامتعادل.
· بلوک های خالی.
· عبارات خالی (نقطه ویرگول بدون عبارات قبلی).
COMMAND LINE رابط
لواچک برنامه فایل ها، دایرکتوری ها و مشخصات سنگ به عنوان استدلال
· با ارائه یک فایل، لواچک آن را بررسی خواهد کرد.
· داده شده -, لواچک stdin را بررسی خواهد کرد.
· با دادن یک فهرست، لواچک تمام فایل های موجود در آن را بررسی می کند و فقط فایل های با را انتخاب می کند
.ماه تمدید مگر اینکه --include-files گزینه استفاده می شود. این ویژگی نیاز دارد
LuaFileSystem (اگر از LuaRocks برای نصب Luacheck استفاده شده باشد، به طور خودکار نصب می شود).
· با توجه به rockspec (فایل با .rockspec افزونه)، لواچک تمام فایل ها را با
.ماه پسوند ذکر شده در rockspec in build.install.lua, build.install.bin و
ساخت. ماژول ها جداول.
خروجی از لواچک شامل گزارش های جداگانه برای هر فایل بررسی شده است و با یک خاتمه می یابد
خلاصه:
$ 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: متغیر حلقه استفاده نشده a
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 خطا در 4 فایل
لواچک در صورت عدم وجود اخطار یا خطایی با 0 و با عدد مثبت خارج می شود
در غیر این صورت.
فرمان خط گزینه های
گزینه های کوتاهی که آرگومان نمی گیرند را می توان در یکی ترکیب کرد، به طوری که -qqu is
معادل -q -q -u. برای گزینه های طولانی، هر دو --گزینه ارزش or --option=value می تواند
استفاده شده.
گزینه هایی که چندین آرگومان دارند می توانند چندین بار استفاده شوند. --چشم پوشی فو --چشم پوشی بار is
معادل --چشم پوشی فو بار.
توجه داشته باشید که گزینه هایی که ممکن است چندین آرگومان داشته باشند، مانند -- جهانی ها، نباید استفاده شود
بلافاصله قبل از استدلال های موضعی؛ داده شده -- جهانی ها فو بار file.lua, لواچک اراده
همه را در نظر بگیرید فو, بار و file.lua جهانی و سپس وحشت کنید زیرا هیچ نام فایلی باقی نمانده است.
┌─────────────────────────────────┬─────────────── ────────────────────┐
│گزینه │ معنی │
├─────────────────────────────────┼─────────────── ────────────────────┤
│-g | -- غیر جهانی │ اخطارهای مربوط به │ را فیلتر کنید
│ │ متغیرهای جهانی. │
├─────────────────────────────────┼─────────────── ────────────────────┤
│-u | --بدون استفاده │ اخطارهای مربوط به │ را فیلتر کنید
│ │ متغیرها و مقادیر استفاده نشده. │
├─────────────────────────────────┼─────────────── ────────────────────┤
│-r | -- بدون تعریف مجدد │ اخطارهای مربوط به │ را فیلتر کنید
│ │ متغیرها را دوباره تعریف کرد. │
├─────────────────────────────────┼─────────────── ────────────────────┤
│-a | --بدون استفاده-آرگ │ اخطارهای مربوط به │ را فیلتر کنید
│ │ آرگومان های استفاده نشده و حلقه │
│ │ متغیرها. │
├─────────────────────────────────┼─────────────── ────────────────────┤
│-s | --بدون استفاده-ثانویه │ اخطارهای مربوط به │ را فیلتر کنید
│ │ متغیرهای استفاده نشده با هم تنظیم می شوند │
│ │ با موارد استفاده شده. │
│ │ │
│ │ مقادیر ثانویه و متغیرها را ببینید
├─────────────────────────────────┼─────────────── ────────────────────┤
│-- بدون خود │ اخطارهای مربوط به │ را فیلتر کنید
│ │ ضمنی خود بحث و جدل. │
└─────────────────────────────────┴─────────────── ────────────────────┘
│-- std │ جهانی های استاندارد را تنظیم کنید. می تواند │
│ │ یکی از: │ باشد
│ │ │
│ │ · _G - جهانیان لوا │
│ │ مترجم لواچک │
│ │ اجرا می شود (پیش فرض)؛ │
│ │ │
│ │ · lua51 - جهانیان لوا │
│ │ 5.1; │
│ │ │
│ │ · lua52 - جهانیان لوا │
│ │ 5.2; │
│ │ │
│ │ · lua52c - جهانیان لوا │
│ │ 5.2 با │ وارد شده است
│ │ LUA_COMPAT_ALL؛ │
│ │ │
│ │ · lua53 - جهانیان لوا │
│ │ 5.3; │
│ │ │
│ │ · lua53c - جهانیان لوا │
│ │ 5.3 با │ وارد شده است
│ │ LUA_COMPAT_5_2؛ │
│ │ │
│ │ · بازی کن - جهانیان از │
│ │ LuaJIT 2.0؛ │
│ │ │
│ │ · ngx_lua - جهانیان از │
│ │ Openresty │
│ ماژول lua-nginx با │
│ │ LuaJIT 2.0؛ │
│ │ │
│ │ · دقیقه - تقاطع │
│ │ جهانی های Lua 5.1، Lua │
│ │ 5.2 و LuaJIT 2.0؛ │
│ │ │
│ │ · حداکثر - اتحادیه جهانیان │
│ │ از Lua 5.1، Lua 5.2 و │
│ │ LuaJIT 2.0؛ │
│ │ │
│ │ · شلاق خورد - جهانی ها اضافه شد │
│ │ توسط Busted 2.0; │
│ │ │
│ │ · هیچ - بدون استاندارد │
│ │ جهانی ها. │
│ │ │
│ │ ببینید مجموعه of استاندارد │
│ جهان │
├─────────────────────────────────┼─────────────── ────────────────────┤
│-- جهانی ها [ ] ... │ جهانی های سفارشی را در بالای │ اضافه کنید
│ │ استاندارد. │
├─────────────────────────────────┼─────────────── ────────────────────┤
│--خواندن-جهانی [ ] ... │ جهانی های فقط خواندنی را اضافه کنید. │
├─────────────────────────────────┼─────────────── ────────────────────┤
│-- جدید جهانی ها [ ] ... │ جهانی های سفارشی را تنظیم کنید. │ را حذف می کند
│ │ جهانی های سفارشی قبلا اضافه شده است. │
├─────────────────────────────────┼─────────────── ────────────────────┤
│--new-read-globals [ ] │ جهانی های فقط خواندنی را تنظیم کنید. │ را حذف می کند
│... │ جهانی های فقط خواندنی اضافه شدند │
│ │ قبلا. │
├─────────────────────────────────┼─────────────── ────────────────────┤
│-c | -- همکار │ معادل -- std حداکثر. │
└─────────────────────────────────┴─────────────── ────────────────────┘
│-d | --مجاز-تعریف شده │ مجاز به تعریف جهانی ها │
│ │ به طور ضمنی با تنظیم آنها. │
│ │ │
│ │ ببینید به طور ضمنی تعریف شده جهانی │
├─────────────────────────────────┼─────────────── ────────────────────┤
│-t | --allow-defined-top │ مجاز به تعریف جهانی ها │
│ │ به طور ضمنی با قرار دادن آنها در │
│ │ محدوده سطح بالا. │
│ │ │
│ │ ببینید به طور ضمنی تعریف شده جهانی │
├─────────────────────────────────┼─────────────── ────────────────────┤
│-m | --مدول │ محدود کردن دید به طور ضمنی │
│ │ جهانی ها را برای فایل های خود تعریف می کند. │
│ │ │
│ │ ماژول ها را ببینید │
├─────────────────────────────────┼─────────────── ────────────────────┤
│--چشم پوشی | -i [ ] │ فیلتر کردن هشدارهای منطبق │
│... │ الگوها │
├─────────────────────────────────┼─────────────── ────────────────────┤
│-- فعال کردن | -e [ ] │ هشدارها را فیلتر نکنید │
│... │ الگوهای تطبیق. │
├─────────────────────────────────┼─────────────── ────────────────────┤
│--فقط | -o [ ] ... │ فیلتر کردن هشدارها مطابقت ندارد │
│ │ الگوها. │
├─────────────────────────────────┼─────────────── ────────────────────┤
│--بدون خط │ گزینه های درون خطی را غیرفعال کنید. │
├─────────────────────────────────┼─────────────── ────────────────────┤
│- پیکربندی │ مسیر به پیکربندی سفارشی │
فایل │ │ (پیش فرض: .luacheckrc). │
├─────────────────────────────────┼─────────────── ────────────────────┤
│--بدون پیکربندی │ به دنبال سفارشی نباشید │
│ │ فایل پیکربندی. │
├─────────────────────────────────┼─────────────── ────────────────────┤
│--نام فایل │ از نام فایل دیگری در خروجی استفاده کنید، │
│ │ برای انتخاب پیکربندی │
│ │ لغو و برای فایل │
│ │ فیلتر کردن. │
├─────────────────────────────────┼─────────────── ────────────────────┤
│--exclude-فایل ها [ ] │ مطابقت فایل ها را بررسی نکنید
│... │ این الگوهای کروی. │
│ │ کره های بازگشتی مانند ***/*.lua │
│ │ پشتیبانی می شوند. │
├─────────────────────────────────┼─────────────── ────────────────────┤
│--include-files [ ] │ عدم تطابق فایل ها را بررسی نکنید
│... │ این الگوهای کروی. │
├─────────────────────────────────┼─────────────── ────────────────────┤
│-- کش [ ] │ مسیر فایل کش. (پیش فرض: │
│ .luacheckcache) دیدن ذخیره سازی │
├─────────────────────────────────┼─────────────── ────────────────────┤
│--بدون کش │ از کش استفاده نکنید. │
├─────────────────────────────────┼─────────────── ────────────────────┤
│-j | --شغل ها │ بررسی کنید فایل های موازی │
│ │ نیاز دارد لوآلنز. │
└─────────────────────────────────┴─────────────── ────────────────────┘
│--فرم کننده │ از قالببندی سفارشی استفاده کنید. │
│ باید یک ماژول │ باشد
│ │ نام یا یکی از: │
│ │ │
│ │ · شیر - تست هر چیزی │
│ │ فرمت کننده پروتکل؛ │
│ │ │
│ │ · JUnit - JUnit XML │
│ │ فرمت کننده؛ │
│ │ │
│ │ · ساده - ساده │
│ │ هشدار در هر خط │
│ │ فرمت کننده؛ │
│ │ │
│ │ · به طور پیش فرض - استاندارد │
│ │ فرمت کننده. │
├─────────────────────────────────┼─────────────── ────────────────────┤
│-q | --ساکت │ سرکوب خروجی گزارش برای فایل ها │
│ │ بدون هشدار. │
│ │ │
│ │ · -qq - سرکوب خروجی │
│ │ هشدارها. │
│ │ │
│ │ · -qqq - فقط خروجی │
│ │ خلاصه. │
├─────────────────────────────────┼─────────────── ────────────────────┤
│--کدها │ نمایش کدهای هشدار │
├─────────────────────────────────┼─────────────── ────────────────────┤
│-- محدوده ها │ نمایش محدوده ستون های مرتبط │
│ │ به هشدارها. │
├─────────────────────────────────┼─────────────── ────────────────────┤
│--بدون رنگ │ خروجی را رنگی نکنید. │
├─────────────────────────────────┼─────────────── ────────────────────┤
│-v | - نسخه │ نمایش نسخه Luachck و │ آن
│ │ وابستگی ها و خروج. │
├─────────────────────────────────┼─────────────── ────────────────────┤
│-h | --کمک │ نشان دادن کمک و خروج. │
└─────────────────────────────────┴─────────────── ────────────────────┘
الگوهای
گزینه های CLI --چشم پوشی, -- فعال کردن و --فقط و گزینه های پیکربندی مربوطه اجازه فیلتر کردن را می دهد
هشدارها با استفاده از تطبیق الگو در کدهای هشدار، نام متغیرها یا هر دو. اگر یک الگو
شامل یک اسلش، قسمت قبل از اسلش مطابق با کد هشدار و قسمت بعد از مسابقات است
نام متغیر در غیر این صورت، اگر یک الگو حاوی یک حرف یا خط زیر باشد، مطابقت دارد
نام متغیر در غیر این صورت، با کد هشدار مطابقت دارد. به عنوان مثال:
┌────────┬────────
│الگو │ هشدارهای تطبیق │
├────────┼─────────────
│4.2 │ اعلامیه های سایه │
│ │ آرگومان ها یا تعریف مجدد آنها. │
├────────┼─────────────
│.*_ │ هشدارهای مربوط به متغیرها │
│ │ با _ پسوند. │
├────────┼─────────────
│4.2/.*_ │ اعلامیه های سایه انداز │
│ │ استدلال با _ پسوند یا │
│ │ بازتعریف آنها. │
└────────┴─────────-
الگوهای مطابق با نام متغیرها در هر دو طرف لنگر انداخته اند، مگر اینکه قبلاً لنگر انداخته شده باشند
الگوهای منطبق با کدهای هشدار در ابتدای خود لنگر انداخته اند. این اجازه می دهد تا
فیلتر کردن هشدارها بر اساس دسته بندی (مثلاً --فقط 1 تمرکز لواچک در مورد هشدارهای مرتبط با جهانی).
مجموعه of استاندارد جهان
گزینه CLI --stds اجازه می دهد تا با استفاده از مجموعه های داخلی که در بالا توضیح داده شد ترکیب شوند +. مثلا،
-- std حداکثر برابر است با --std=lua51+lua52+lua53. علامت مثبت پیشرو مجموعه های جدیدی را به آن اضافه می کند
یک پیش فرض به جای جایگزین کردن آن. برای مثال، -- std +شکسته شده برای بررسی مناسب است
فایل های آزمایشی که استفاده می کنند گران چارچوب تست مجموعه های سفارشی جهانی ها را می توان با تعریف کرد
متغیر جهانی جهش یافته stds در پیکربندی custom_stds را ببینید
فرمت کننده ها
گزینه CLI --فرم کننده اجازه می دهد تا یک قالب بندی سفارشی را انتخاب کنید لواچک خروجی یک سفارش
formatter یک ماژول Lua است که تابعی را با سه آرگومان برمی گرداند: گزارش به عنوان برگردانده شده توسط
لواچک ماژول (به گزارش مراجعه کنید)، آرایه ای از نام فایل ها و جدول گزینه ها. گزینه ها شامل
مقادیر اختصاص داده شده به ساکت, رنگ, محدود کردن, کد, محدوده ها و فرم دهنده گزینه ها در CLI یا
پیکربندی تابع Formatter باید یک رشته را برگرداند.
ذخیره سازی
اگر LuaFileSystem در دسترس باشد، Luacheck میتواند نتایج بررسی فایلها را ذخیره کند. در بعد
چکها، فقط فایلهایی که از آخرین بررسی تغییر کردهاند، دوباره بررسی میشوند و بهبود مییابند
زمان اجرا به طور قابل توجهی تغییر گزینه ها (مثلاً تعریف جهانی های اضافی) انجام نمی شود
حافظه پنهان را باطل کنید با استفاده از حافظه پنهان می توان آن را فعال کرد -- کش گزینه یا نهانگاه پیکربندی
گزینه. استفاده كردن -- کش بدون استدلال یا تنظیم نهانگاه گزینه پیکربندی به درست مجموعه
.luacheckcache به عنوان فایل کش توجه داشته باشید که -- کش باید هر بار استفاده شود لواچک is
اجرا، نه تنها در اولین اجرا.
پایدار رابط برای سردبیر پلاگین ها و ابزار
رابط خط فرمان Luachck می تواند بین نسخه های جزئی تغییر کند. شروع از 0.11.0
نسخه، رابط زیر حداقل تا نسخه 1.0.0 تضمین شده است و باید باشد
ابزارهایی که از خروجی Luacheck استفاده می کنند، به عنوان مثال پلاگین های ویرایشگر.
· Luacheck باید از دایرکتوری حاوی فایل بررسی شده شروع شود.
· فایل را می توان با استفاده از stdin منتقل کرد - به عنوان آرگومان یا استفاده از یک فایل موقت. واقعی
نام فایل باید با استفاده از --نام فایل گزینه.
· باید از فرمتگر ساده استفاده شود. در هر خط یک مسئله (اخطار یا خطا) را خروجی می دهد.
· برای دریافت محل دقیق خطا، -- محدوده ها می توان از گزینه استفاده کرد هر خط با واقعی شروع می شود
نام فایل (با استفاده از --نام فایل)، به دنبال : : - :,
جایی که شماره خطی است که مشکل در آن رخ داده است و - is
طیف گسترده ای از ستون های رمز مربوط به صدور. شماره گذاری از 1 شروع می شود
-- محدوده ها استفاده نمی شود، ستون انتهایی و خط تیره چاپ نمی شود.
· برای دریافت کدهای هشدار و خطا، --کدها می توان از گزینه استفاده کرد برای هر خط، رشته فرعی
بین پرانتز حاوی کد سه رقمی است که با پیشوند E برای خطاها و W
برای اخطار فقدان چنین زیر رشته ای نشان دهنده یک خطای کشنده است (به عنوان مثال خطای I/O).
· بقیه خط پیام هشدار است.
اگر سازگاری با نسخه قدیمی Luacheck مورد نظر است، خروجی از لواچک --کمک می تواند
برای دریافت نسخه آن استفاده شده است. اگر دارای رشته باشد 0. .، که در آن در است
حداقل 11 و وصله هر عددی باشد، رابطی که در بالا توضیح داده شد باید استفاده شود.
پیکربندی فایل
لواچک سعی می کند پیکربندی را از .luacheckrc فایل در دایرکتوری فعلی اگر
یافت نشد، آن را در دایرکتوری والد جستجو می کند و به همین ترتیب تا آن زمان بالا می رود
به ریشه سیستم فایل می رسد. مسیر پیکربندی را می توان با استفاده از آن تنظیم کرد - پیکربندی گزینه، در این صورت
در طول بارگذاری بازگشتی استفاده خواهد شد. بارگیری پیکربندی را می توان با استفاده از آن غیرفعال کرد --بدون پیکربندی
پرچم.
Config به سادگی یک اسکریپت Lua است که توسط آن اجرا می شود لواچک. ممکن است گزینه های مختلفی را تنظیم کند
اختصاص دادن به جهانی ها یا با برگرداندن جدولی با نام گزینه ها به عنوان کلید.
پیکربندی گزینه های
┌───────────────────┬──────────────────────────┬── ────────────────────┐
│گزینه │ نوع │ مقدار پیش فرض │
├───────────────────┼──────────────────────────┼── ────────────────────┤
│رنگ │ بولی │ درست │
├───────────────────┼──────────────────────────┼── ────────────────────┤
│کد │ بولی │ غلط │
└───────────────────┴──────────────────────────┴── ────────────────────┘
│فرم دهنده │ رشته یا تابع │ "پیش فرض" │
├───────────────────┼──────────────────────────┼── ────────────────────┤
│نهانگاه │ بولی یا رشته ای │ غلط │
├───────────────────┼──────────────────────────┼── ────────────────────┤
│شغل ها │ عدد صحیح مثبت │ 1 │
├───────────────────┼──────────────────────────┼── ────────────────────┤
│exclude_files │ آرایه از رشته ها │ {} │
├───────────────────┼──────────────────────────┼── ────────────────────┤
│include_files │ آرایه از رشته ها │ (شامل همه فایل ها) │
├───────────────────┼──────────────────────────┼── ────────────────────┤
│جهانی │ بولی │ درست │
├───────────────────┼──────────────────────────┼── ────────────────────┤
│استفاده نشده │ بولی │ درست │
├───────────────────┼──────────────────────────┼── ────────────────────┤
│تعریف مجدد │ بولی │ درست │
├───────────────────┼──────────────────────────┼── ────────────────────┤
│unused_args │ بولی │ درست │
├───────────────────┼──────────────────────────┼── ────────────────────┤
│unused_secondaries │ بولی │ درست │
├───────────────────┼──────────────────────────┼── ────────────────────┤
│خود │ بولی │ درست │
├───────────────────┼──────────────────────────┼── ────────────────────┤
│STD │ رشته یا مجموعه ای از │ "_G" │
│ │ جهانی های استاندارد │ │
├───────────────────┼──────────────────────────┼── ────────────────────┤
│جهان │ آرایه از رشته ها │ {} │
├───────────────────┼──────────────────────────┼── ────────────────────┤
│new_globals │ آرایه رشته ها │ (بازنویسی نکنید) │
├───────────────────┼──────────────────────────┼── ────────────────────┤
│read_globals │ آرایه از رشته ها │ {} │
├───────────────────┼──────────────────────────┼── ────────────────────┤
│new_read_globals │ آرایه رشته ها │ (بازنویسی نکنید) │
├───────────────────┼──────────────────────────┼── ────────────────────┤
│جمع کردن │ بولی │ غلط │
├───────────────────┼──────────────────────────┼── ────────────────────┤
│allow_defined │ بولی │ غلط │
├───────────────────┼──────────────────────────┼── ────────────────────┤
│allow_defined_top │ بولی │ غلط │
├───────────────────┼──────────────────────────┼── ────────────────────┤
│واحد │ بولی │ غلط │
├───────────────────┼──────────────────────────┼── ────────────────────┤
│چشم پوشی از │ آرایه ای از الگوها (به │ مراجعه کنید {} │
│ │ الگوها) │ │
├───────────────────┼──────────────────────────┼── ────────────────────┤
│قادر ساختن │ آرایه ای از الگوها │ {} │
├───────────────────┼──────────────────────────┼── ────────────────────┤
│فقط │ آرایه از الگوها │ (فیلتر نکنید) │
├───────────────────┼──────────────────────────┼── ────────────────────┤
│خطی │ بولی │ درست │
└───────────────────┴──────────────────────────┴── ────────────────────┘
نمونه ای از پیکربندی که باعث می شود لواچک اطمینان حاصل کنید که فقط جهانی ها از قابل حمل
تقاطع Lua 5.1، Lua 5.2، Lua 5.3 و LuaJIT 2.0 استفاده می شود و همچنین غیرفعال می شود
تشخیص آرگومان های استفاده نشده:
std = "min"
نادیده گرفتن = {"212"}
سفارشی مجموعه of جهان
STD این گزینه اجازه می دهد تا یک مجموعه استاندارد سفارشی از جهانی ها را با استفاده از یک جدول تنظیم کنید. در آن جدول،
کلیدهای رشته ای جهانی هستند و رشته ها در بخش آرایه جهانی فقط خواندنی هستند.
علاوه بر این، مجموعه های سفارشی را می توان با جهش جهانی نام گذاری کرد stds متغیر. برای
به عنوان مثال، هنگام استفاده از LPEG کتابخانه، منطقی است که به طور مختصر به عملکردهای آن دسترسی داشته باشید
جهانی ها در آن صورت، پیکربندی زیر امکان حذف مثبت های کاذب مربوط به را فراهم می کند
دسترسی جهانی به راحتی:
stds.lpeg = نیاز به "lpeg"
محلی lpeg = نیاز به "lpeg"
تابع محلی parse1(...)
-- این تابع فقط از توابع lpeg به عنوان جهانی استفاده می کند.
محلی _ENV = lpeg
-- luacheck: std lpeg
رقم محلی، فاصله = R "09"، S ""
--...
پایان
تابع محلی parse2(...)
-- این تابع از توابع lpeg و همچنین جهانی های استاندارد استفاده می کند.
local _ENV = setmetatable({}، {__index = function(_, k) return _ENV[k] یا lpeg[k] end})
-- luacheck: std +lpeg
رقم محلی، فاصله = R "09"، S ""
شماره محلی = C (رقم^1) / شماره
--...
پایان
در هر فایل و در هر مسیر نادیده گرفتن
محیطی که در آن لواچک بارگذاری پیکربندی حاوی یک جهانی خاص است فایل هااست. وقتی که
بررسی یک فایل , لواچک گزینه های پیکربندی اصلی را با ورودی ها لغو می کند
از جانب فایل ها[ ] و فایل ها[ ]، ابتدا ورودی ها را برای مسیرهای کوتاهتر اعمال کنید. برای
به عنوان مثال، پیکربندی زیر شناسایی آرگومان های استفاده نشده را فقط برای فایل های موجود دوباره فعال می کند
src/dir، اما نه برای src/dir/myfile.lua، و اجازه استفاده را می دهد گران جهانی ها در داخل مشخصات /:
std = "min"
نادیده گرفتن = {"212"}
فایلها["src/dir"] = {enable = {"212"}}
files["src/dir/myfile.lua"] = {نادیده گرفتن = {"212"}}
فایلها["spec"] = {std = "+busted"}
توجه داشته باشید که فایل ها جدول از autovivification پشتیبانی می کند، به طوری که
files["myfile.lua"].ignore = {"212"}
و
فایلها["myfile.lua"] = {نادیده گرفتن = {"212"}}
معادل هستند
INLINE OPTIONS
Luacheck از تنظیم برخی از گزینه ها به طور مستقیم در فایل های بررسی شده با استفاده از درون خط پشتیبانی می کند
نظرات پیکربندی یک نظر پیکربندی درون خطی با شروع می شود لواچک: برچسب،
احتمالا بعد از مقداری فاصله بدنه نظر باید دارای کاما از هم جدا شده باشد
گزینه ها، که در آن فراخوانی گزینه شامل نام آن به اضافه آرگومان های جدا شده از فاصله است. در
گزینه های زیر پشتیبانی می شوند:
┌───────────────────┬───────────────────────────── ─────┐
│گزینه │ تعداد آرگومان ها │
├───────────────────┼───────────────────────────── ─────┤
│جهانی │ 0 │
├───────────────────┼───────────────────────────── ─────┤
│استفاده نشده │ 0 │
├───────────────────┼───────────────────────────── ─────┤
│تعریف مجدد │ 0 │
├───────────────────┼───────────────────────────── ─────┤
│ارگ های استفاده نشده │ 0 │
├───────────────────┼───────────────────────────── ─────┤
│ثانویه استفاده نشده │ 0 │
├───────────────────┼───────────────────────────── ─────┤
│خود │ 0 │
└───────────────────┴───────────────────────────── ─────┘
│سازگار │ 0 │
├───────────────────┼───────────────────────────── ─────┤
│ ماژول │ 0 │
├───────────────────┼───────────────────────────── ─────┤
│ مجاز تعریف شده │ 0 │
├───────────────────┼───────────────────────────── ─────┤
│بالای تعریف شده مجاز باشد │ 0 │
├───────────────────┼───────────────────────────── ─────┤
│std │ 1 │
├───────────────────┼───────────────────────────── ─────┤
│جهانی │ 0+ │
├───────────────────┼───────────────────────────── ─────┤
│ جهانی های جدید │ 0+ │
├───────────────────┼───────────────────────────── ─────┤
│ جهانی ها را بخوانید │ 0+ │
├───────────────────┼───────────────────────────── ─────┤
│کلیات خواندنی جدید │ 0+ │
├───────────────────┼───────────────────────────── ─────┤
│ نادیده گرفتن │ 0+ (بدون آرگومان همه چیز │
│ │ نادیده گرفته می شود) │
├───────────────────┼───────────────────────────── ─────┤
│ فعال کردن │ 1+ │
├───────────────────┼───────────────────────────── ─────┤
│فقط │ 1+ │
└───────────────────┴───────────────────────────── ─────┘
گزینه هایی که هیچ آرگومان ندارند را می توان با پیشوند اضافه کرد نه برای معکوس کردن معنای آنها به عنوان مثال
--luacheck: نه استفاده نشده قوس هشدارهای آرگومان استفاده نشده را غیرفعال می کند.
بخشی از فایل تحت تاثیر گزینه inline بستگی به محل قرارگیری آن دارد. اگر وجود دارد
کد روی خط با گزینه، فقط آن خط تحت تأثیر قرار می گیرد. در غیر این صورت، همه چیز تا
پایان بسته شدن فعلی است. به ویژه گزینه های درون خطی در بالای فایل
همه آن را تحت تاثیر قرار دهد:
-- luacheck: globals g1 g2، foo را نادیده بگیرید
محلی foo = g1 (g2) -- هیچ هشداری صادر نشده است.
- عملکرد استفاده نشده زیر گزارش نشده است.
تابع محلی f() -- luacheck: ignore
-- luacheck: globals g3
g3() -- بدون هشدار.
پایان
g3() - هشدار به عنوان گزینه درون خطی که g3 را فقط بر تابع f تحت تأثیر قرار می دهد منتشر می شود.
برای کنترل دقیق روی دید گزینه های درون خطی از استفاده کنید لواچک: فشار و لواچک:
پاپ بخشنامه ها:
-- luacheck: فشار ignore foo
foo() -- بدون هشدار.
-- luacheck: پاپ
foo() -- هشدار صادر می شود.
گزینه های درون خطی را می توان با استفاده از آن به طور کامل غیرفعال کرد --بدون خط گزینه CLI یا خطی پیکربندی
گزینه.
لواچک MODULE
استفاده کنید محلی لواچک = نیاز "لواچک" برای واردات لواچک مدول. این شامل
توابع زیر:
· luacheck.get_report (منبع): با توجه به رشته منبع، داده های تجزیه و تحلیل (یک جدول) را برمی گرداند.
· luacheck.process_reports(گزارشها، گزینه ها): آرایه ای از گزارش های تحلیل را پردازش می کند و
گزینه ها را اعمال می کند گزارشات[i] استفاده گزینه های, گزینهها[i], گزینهها[i][1], گزینهها[i][2]...
بهعنوان گزینهها، بر همدیگر به ترتیب آنها نادیده گرفته میشوند. جدول گزینه ها یک جدول با فیلدها است
مشابه گزینه های پیکربندی؛ گزینه ها را ببینید تجزیه و تحلیل گزارش های میدانی کشنده نادیده گرفته می شوند
فرآیند_گزارش ها گزارش نهایی را برمی گرداند، ببینید گزارش قالب.
· luacheck.check_strings(منابع، گزینه ها): آرایه منابع را با استفاده از گزینه ها بررسی می کند، برمی گرداند
گزارش نهایی. جداول با زمینه کشنده در داخل منابع آرایه نادیده گرفته می شوند.
· luacheck.check_files(فایل ها، گزینه ها): آرایه فایل ها را با استفاده از گزینه ها بررسی می کند، نهایی را برمی گرداند
گزارش. دستههای فایل باز میتوانند به جای نام فایل ارسال شوند، در این صورت میشوند
تا EOF خوانده شود و بسته شود.
· luacheck.get_message(issue): یک پیام رشته ای را برای یک مشکل برمی گرداند، ببینید گزارش قالب.
luacheck._VERSION شامل نسخه Luacheck به عنوان یک رشته در است MAJOR.MINOR.PATCH فرمت.
با استفاده از لواچک به عنوان یک تابع معادل فراخوانی است luacheck.check_files.
گزارش قالب
گزارش نهایی آرایه ای از گزارش های فایل به اضافه فیلدها است هشدارها, خطا و کشنده
شامل تعداد کل اخطارها، خطاها و خطاهای کشنده، به ترتیب.
گزارش فایل مجموعه ای از مسائل (هشدارها یا خطاها) است. اگر یک خطای کشنده رخ داد در حالی که
با بررسی یک فایل، گزارش آن خواهد بود کشنده فیلد حاوی نوع خطا
یک مسئله جدول با فیلد است رمز نوع آن را نشان می دهد (نگاه کنید به هشدارها) و فیلدها خط,
ستون و پایان_ستون با اشاره به منبع هشدار نام فیلد ممکن است حاوی نام باشد
از متغیر مرتبط مسائل برخی از انواع نیز می توانند دارای فیلدهای اضافی باشند:
┌──────┬────────────-
│کدها │ فیلدهای اضافی │
├──────┼───────────────
│011 │ MSG فیلد حاوی خطای نحوی │ است
│ │ پیام. │
├──────┼───────────────
│111 │ واحد فیلد نشان می دهد که │
│ │ انتساب به غیر ماژول │ است
│ │ متغیر جهانی. │
├──────┼───────────────
│211 │ عملکرد فیلد نشان می دهد که استفاده نشده │
│ │ متغیر یک تابع است. │
├──────┼───────────────
│4.. │ prev_line و prev_column زمینه ها │
│ │ حاوی محل │
│ │ تعریف بازنویسی شده. │
└──────┴───────────-
ممکن است فیلدهای دیگر به دلایل داخلی وجود داشته باشد.
این اسناد برای نسخه 0.13.0 است لواچک، یک لینتر برای لوا.
با استفاده از خدمات onworks.net از luacheck آنلاین استفاده کنید