ນີ້ແມ່ນຄໍາສັ່ງ luacheck ທີ່ສາມາດດໍາເນີນການໄດ້ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີໂດຍໃຊ້ຫນຶ່ງໃນຫຼາຍໆບ່ອນເຮັດວຽກອອນໄລນ໌ຂອງພວກເຮົາເຊັ່ນ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS online emulator
ໂຄງການ:
NAME
luacheck - luacheck ເອກະສານ
ເນື້ອໃນ:
LIST OF ຄໍາເຕືອນ
ຄໍາເຕືອນທີ່ຜະລິດໂດຍ Luacheck ຖືກຈັດປະເພດໂດຍໃຊ້ລະຫັດເຕືອນສາມຕົວເລກ. ຄຳເຕືອນ
ລະຫັດສາມາດສະແດງຢູ່ໃນຜົນຜະລິດ CLI ໂດຍໃຊ້ --ລະຫັດ ທາງເລືອກ CLI ຫຼື ລະຫັດ ທາງເລືອກ config.
ຂໍ້ຜິດພາດຍັງມີລະຫັດເລີ່ມຕົ້ນດ້ວຍສູນ.
┌─────┬───────────────────────────────
│ລະຫັດ │ ລາຍລະອຽດ │
├─────┼────────────────────────────────
│011 │ syntax ຜິດພາດ. │
├─────┼────────────────────────────────
│021 │ ຕົວເລືອກໃນແຖວບໍ່ຖືກຕ້ອງ. │
├─────┼────────────────────────────────
│022 │ ການຊຸກຍູ້ໃນແຖວແບບ upaired │
│ │ ຄຳສັ່ງ. │
├─────┼────────────────────────────────
│023 │ ຄຳສັ່ງປັອບອັບໃນແຖວທີ່ປັບປຸງແລ້ວ. │
├─────┼────────────────────────────────
│111 │ ການຕັ້ງຄ່າໂລກທີ່ບໍ່ໄດ້ກໍານົດ │
│ │ ຕົວແປ. │
├─────┼────────────────────────────────
│112 │ ການປ່ຽນເປັນໂລກທີ່ບໍ່ໄດ້ກຳນົດໄວ້ │
│ │ ຕົວແປ. │
├─────┼────────────────────────────────
│113 │ ການເຂົ້າເຖິງໂລກທີ່ບໍ່ໄດ້ກໍານົດ │
│ │ ຕົວແປ. │
├─────┼────────────────────────────────
│121 │ ການຕັ້ງຄ່າທົ່ວໂລກແບບອ່ານຢ່າງດຽວ │
│ │ ຕົວແປ. │
├─────┼────────────────────────────────
│122 │ ການປ່ຽນແປງແບບອ່ານຢ່າງດຽວທົ່ວໂລກ │
│ │ ຕົວແປ. │
├─────┼────────────────────────────────
│131 │ unused implicitly defined global │
│ │ ຕົວແປ. │
├─────┼────────────────────────────────
│211 │ ຕົວແປທ້ອງຖິ່ນທີ່ບໍ່ໄດ້ໃຊ້. │
├─────┼────────────────────────────────
│212 │ ອາກິວເມັນທີ່ບໍ່ໄດ້ໃຊ້. │
├─────┼────────────────────────────────
│213 │ ຕົວແປ loop ທີ່ບໍ່ໄດ້ໃຊ້. │
├─────┼────────────────────────────────
│221 │ ຕົວແປທ້ອງຖິ່ນເຂົ້າເຖິງໄດ້ແຕ່ │
│ │ ບໍ່ເຄີຍຕັ້ງ. │
├─────┼────────────────────────────────
│231 │ ຕົວແປທ້ອງຖິ່ນຖືກຕັ້ງແຕ່ບໍ່ເຄີຍ │
│ │ ເຂົ້າເຖິງ. │
├─────┼────────────────────────────────
│232 │ ມີການຕັ້ງອາກິວເມັນ ແຕ່ບໍ່ເຄີຍ │
│ │ ເຂົ້າເຖິງ. │
├─────┼────────────────────────────────
│233 │ ຕົວແປ Loop ຖືກຕັ້ງແຕ່ບໍ່ເຄີຍ │
│ │ ເຂົ້າເຖິງ. │
├─────┼────────────────────────────────
│311 │ ຄ່າທີ່ມອບໃຫ້ │ ທ້ອງຖິ່ນ
ຕົວແປ │ │ ບໍ່ໄດ້ໃຊ້. │
└──────┴───────────────────────────────
│312 │ ຄ່າຂອງອາກິວເມັນບໍ່ໄດ້ໃຊ້. │
├─────┼────────────────────────────────
│313 │ ຄ່າຂອງຕົວແປ loop ແມ່ນ │
│ │ ບໍ່ໄດ້ໃຊ້. │
├─────┼────────────────────────────────
│321 │ ການເຂົ້າເຖິງທ້ອງຖິ່ນທີ່ບໍ່ໄດ້ໃຊ້ │
│ │ ຕົວແປ. │
├─────┼────────────────────────────────
│411 │ ການກຳນົດຕົວແປທ້ອງຖິ່ນຄືນໃໝ່. │
├─────┼────────────────────────────────
│412 │ ນິຍາມໃໝ່ການໂຕ້ຖຽງ. │
├─────┼────────────────────────────────
│413 │ ນິຍາມຕົວແປ loop. │
├─────┼────────────────────────────────
│421 │ ການສ້າງເງົາຕົວແປທ້ອງຖິ່ນ. │
├─────┼────────────────────────────────
│422 │ ການສ້າງເງົາການໂຕ້ແຍ້ງ. │
├─────┼────────────────────────────────
│423 │ ການສ້າງເງົາຕົວແປ loop. │
├─────┼────────────────────────────────
│431 │ ການສ້າງເງົາເປັນມູນຄ່າສູງ. │
├─────┼────────────────────────────────
│432 │ ການສ້າງເງົາເປັນອາກິວເມັນທີ່ມີມູນຄ່າສູງ. │
├─────┼────────────────────────────────
│433 │ ການສ້າງເງົາເປັນວົງຮອບມູນຄ່າ │
│ │ ຕົວແປ. │
├─────┼────────────────────────────────
│511 │ ລະຫັດທີ່ບໍ່ສາມາດເຂົ້າເຖິງໄດ້. │
├─────┼────────────────────────────────
│512 │ Loop ສາມາດຖືກປະຕິບັດໄດ້ສູງສຸດ │
│ │ ຄັ້ງດຽວ. │
├─────┼────────────────────────────────
│521 │ ປ້າຍທີ່ບໍ່ໄດ້ໃຊ້. │
├─────┼────────────────────────────────
│531 │ ຊ້າຍມືຂອງວຽກ │
│ │ ສັ້ນເກີນໄປ. │
├─────┼────────────────────────────────
│532 │ ຊ້າຍມືຂອງວຽກ │
│ │ ຍາວເກີນໄປ. │
├─────┼────────────────────────────────
│541 │ ຫວ່າງເປົ່າ do ໃນຕອນທ້າຍ ຕັນ. │
├─────┼────────────────────────────────
│542 │ ຫວ່າງເປົ່າ if ສາຂາ. │
├─────┼────────────────────────────────
│551 │ ຖະແຫຼງການຫວ່າງເປົ່າ. │
└──────┴───────────────────────────────
Global ຕົວແປ
ສໍາລັບແຕ່ລະໄຟລ໌, Luacheck ສ້າງບັນຊີລາຍຊື່ຂອງໂລກທີ່ກໍານົດໄວ້ເຊິ່ງສາມາດນໍາໃຊ້ໄດ້. ໂດຍຄ່າເລີ່ມຕົ້ນ
ພຽງແຕ່ທົ່ວໂລກຈາກຫ້ອງສະຫມຸດມາດຕະຖານ Lua ຖືກກໍານົດ; ທົ່ວໂລກທີ່ກໍາຫນົດເອງສາມາດຖືກເພີ່ມໂດຍໃຊ້
-- ໂລກ ທາງເລືອກ CLI ຫຼື ໂລກ ທາງເລືອກ config, ແລະສະບັບຂອງຫ້ອງສະຫມຸດມາດຕະຖານສາມາດເປັນ
ເລືອກໂດຍການນໍາໃຊ້ --std ທາງເລືອກ CLI ຫຼື std ທາງເລືອກ config. ເມື່ອຕັ້ງທົ່ວໂລກທີ່ບໍ່ໄດ້ກຳນົດໄວ້,
mutated ຫຼືເຂົ້າເຖິງ, Luacheck ຜະລິດຄໍາເຕືອນ.
ອ່ານຢ່າງດຽວ ໂລກ
ໂດຍຄ່າເລີ່ມຕົ້ນ, ມາດຕະຖານທົ່ວໂລກທັງໝົດຍົກເວັ້ນ _G ແລະ ຊຸດ ຖືກໝາຍວ່າເປັນອ່ານເທົ່ານັ້ນ, ດັ່ງນັ້ນ
ການຕັ້ງຄ່າຫຼືປ່ຽນພວກມັນເຮັດໃຫ້ເກີດການເຕືອນ. ສາມາດເພີ່ມການອ່ານແບບກຳນົດເອງໄດ້ໂດຍການໃຊ້
--read-globals ທາງເລືອກ CLI ຫຼື read_globals ທາງເລືອກ config.
ຢ່າງເປັນທາງການ ກໍານົດໄວ້ ໂລກ
Luacheck ສາມາດຖືກຕັ້ງຄ່າເພື່ອພິຈາລະນາທົ່ວໂລກທີ່ຖືກມອບຫມາຍພາຍໃຕ້ເງື່ອນໄຂບາງຢ່າງທີ່ຈະເປັນ
ກໍານົດ implicitly. ເມື່ອໃດ -d/--allow_defined ທາງເລືອກ CLI ຫຼື allow_defined ທາງເລືອກ config ແມ່ນ
ນຳໃຊ້, ການມອບໝາຍທັງໝົດໃຫ້ທົ່ວໂລກກຳນົດພວກມັນ; ເມື່ອໃດ -t/--allow_defined_top ທາງເລືອກ CLI ຫຼື
allow_defined_top ທາງເລືອກ config ຖືກນໍາໃຊ້, ການມອບຫມາຍໃຫ້ທົ່ວໂລກໃນຫນ້າທີ່ລະດັບສູງສຸດ
ຂອບເຂດ (ຍັງເອີ້ນວ່າ chunk ຕົ້ນຕໍ) ກໍານົດໃຫ້ເຂົາເຈົ້າ. ການເຕືອນໄພແມ່ນຜະລິດໃນເວລາທີ່ມີ implicitly
ທົ່ວໂລກທີ່ຖືກກໍານົດບໍ່ສາມາດເຂົ້າເຖິງໄດ້ທຸກບ່ອນ.
ໂມດູນ
ໄຟລ໌ສາມາດຖືກຫມາຍເປັນໂມດູນໂດຍໃຊ້ -m/--ໂມດູນ ທາງເລືອກ CLI ຫຼື ໂມດູນ config ທາງເລືອກທີ່ຈະ
ຈໍາລອງຄວາມຫມາຍຂອງສິ່ງທີ່ປະຕິເສດ ໂມດູນ ຫນ້າທີ່. ທົ່ວໂລກໄດ້ກໍານົດໂດຍຫຍໍ້ພາຍໃນ a
ໂມດູນແມ່ນຖືວ່າເປັນສ່ວນ ໜຶ່ງ ຂອງການໂຕ້ຕອບຂອງມັນ, ບໍ່ເຫັນພາຍນອກແລະບໍ່ໄດ້ຖືກລາຍງານ
ບໍ່ໄດ້ໃຊ້. ການມອບໝາຍໃຫ້ກັບໂລກອື່ນໆແມ່ນບໍ່ໄດ້ຮັບອະນຸຍາດ, ແມ່ນແຕ່ການກຳນົດ.
ບໍ່ໄດ້ໃຊ້ ຕົວແປ ແລະ ຄ່າ
Luacheck ສ້າງຄໍາເຕືອນສໍາລັບຕົວແປທ້ອງຖິ່ນທີ່ບໍ່ໄດ້ໃຊ້ທັງຫມົດຍົກເວັ້ນຫນຶ່ງທີ່ມີຊື່ _. ມັນຍັງ
ກວດພົບຕົວແປທີ່ຖືກກໍານົດໄວ້ແຕ່ບໍ່ເຄີຍເຂົ້າເຖິງຫຼືເຂົ້າເຖິງແຕ່ບໍ່ເຄີຍຕັ້ງ.
ບໍ່ໄດ້ໃຊ້ ຄ່າ ແລະ ບໍ່ລິເລີ່ມ ຕົວແປ
ສໍາລັບແຕ່ລະຄ່າທີ່ຖືກມອບຫມາຍໃຫ້ກັບຕົວແປທ້ອງຖິ່ນ, Luacheck ຄິດໄລ່ຊຸດຂອງການສະແດງທີ່ຢູ່ມັນ
ສາມາດນໍາໃຊ້ໄດ້. ຄໍາເຕືອນແມ່ນຜະລິດສໍາລັບຄ່າທີ່ບໍ່ໄດ້ໃຊ້ (ເມື່ອຄ່າບໍ່ສາມາດຖືກນໍາໃຊ້
ທຸກບ່ອນ) ແລະສໍາລັບການເຂົ້າເຖິງຕົວແປ uninitialized (ໃນເວລາທີ່ບໍ່ມີຄ່າສາມາດບັນລຸໄດ້
ການສະແດງອອກ). ຕົວຢ່າງ: ໃນຄ່າ snippet ຕໍ່ໄປນີ້ມອບໃຫ້ ຟູ ໃນແຖວທີ 1 ແມ່ນບໍ່ໄດ້ໃຊ້, ແລະ
ຕົວແປ ພາທະນາຍຄວາມ ແມ່ນ uninitialized ໃນແຖວ 9:
foo ທ້ອງຖິ່ນ = expr1()
ແຖບທ້ອງຖິ່ນ
ຖ້າເງື່ອນໄຂ () ຫຼັງຈາກນັ້ນ
foo = expr2()
bar = expr3()
ອື່ນ
foo = expr4()
ພິມ(ແຖບ)
ໃນຕອນທ້າຍ
ກັບຄືນ foo, bar
ມັດທະຍົມ ຄ່າ ແລະ ຕົວແປ
ຄ່າທີ່ບໍ່ໄດ້ໃຊ້ຖືກມອບໝາຍໃຫ້ກັບຕົວແປທ້ອງຖິ່ນແມ່ນຮອງຖ້າຕົ້ນກຳເນີດຂອງມັນແມ່ນລາຍການສຸດທ້າຍ
RHS ຂອງການມອບໝາຍ, ແລະຄ່າອື່ນຈາກລາຍການນັ້ນຖືກໃຊ້. ຄ່າຮອງ
ໂດຍປົກກະຕິຈະປະກົດຂຶ້ນເມື່ອຜົນຂອງການເອີ້ນຟັງຊັນຖືກໃສ່ເຂົ້າໄປໃນທ້ອງຖິ່ນ, ແລະມີພຽງແຕ່ບາງອັນເທົ່ານັ້ນ
ໄດ້ຖືກນໍາໃຊ້ຕໍ່ມາ. ຕົວຢ່າງ, ທີ່ນີ້ມອບຫມາຍໃຫ້ b ແມ່ນຮອງ, ຄ່າທີ່ມອບໃຫ້ c is
ນໍາໃຊ້, ແລະມູນຄ່າມອບຫມາຍໃຫ້ a ບໍ່ໄດ້ໃຊ້ງ່າຍໆ:
ທ້ອງຖິ່ນ a, b, c = f(), g()
ກັບຄືນຄ
ຕົວແປເປັນຮອງຖ້າທຸກຄ່າທີ່ກຳນົດໃຫ້ມັນເປັນຕົວສຳຮອງ. ໃນຕົວຢ່າງຂ້າງເທິງ,
b ເປັນຕົວແປທີສອງ.
ຄຳເຕືອນທີ່ກ່ຽວຂ້ອງກັບຄ່າສຳຮອງທີ່ບໍ່ໄດ້ໃຊ້ ແລະຕົວແປສາມາດຖອດອອກໄດ້ໂດຍໃຊ້
-s/--no-unused-secondaries ທາງເລືອກ CLI ຫຼື unused_secondaries ທາງເລືອກ config.
ການຮົ່ມ ການປະກາດ
Luacheck ກວດພົບການປະກາດຂອງຕົວແປທ້ອງຖິ່ນ shadowing ການປະກາດທີ່ຜ່ານມາ, ເວັ້ນເສຍແຕ່
ຕົວແປແມ່ນຊື່ _. ຖ້າການປະກາດທີ່ຜ່ານມາຢູ່ໃນຂອບເຂດດຽວກັນກັບສະບັບໃຫມ່,
ມັນຖືກເອີ້ນວ່າ redefining.
ໃຫ້ສັງເກດວ່າມັນແມ່ນ ບໍ່ ມີຄວາມຈໍາເປັນເພື່ອກໍານົດຕົວແປທ້ອງຖິ່ນໃຫມ່ໃນເວລາທີ່ຂຽນທັບ argument:
ຟັງຊັນທ້ອງຖິ່ນ f(x)
local x = x ຫຼື "default" -- ບໍ່ດີ
ໃນຕອນທ້າຍ
ຟັງຊັນທ້ອງຖິ່ນ f(x)
x = x ຫຼື "ຄ່າເລີ່ມຕົ້ນ" -- ດີ
ໃນຕອນທ້າຍ
ການຄວບຄຸມ flow ແລະ ຂໍ້ມູນ flow ບັນຫາ
ກວດພົບບັນຫາການໄຫຼເຂົ້າຂອງການຄວບຄຸມ ແລະຂໍ້ມູນຕໍ່ໄປນີ້:
· ລະຫັດທີ່ບໍ່ສາມາດບັນລຸໄດ້ແລະ loops ທີ່ສາມາດໄດ້ຮັບການປະຕິບັດໃນຫຼາຍທີ່ສຸດຄັ້ງດຽວ (ເຊັ່ນເນື່ອງຈາກການ
ການພັກຜ່ອນທີ່ບໍ່ມີເງື່ອນໄຂ);
·ປ້າຍທີ່ບໍ່ໄດ້ໃຊ້;
· ການມອບໝາຍທີ່ບໍ່ສົມດຸນ;
· ຕັນຫວ່າງເປົ່າ.
· ຂໍ້ຄວາມຫວ່າງເປົ່າ (ເຄື່ອງໝາຍຈຸດທີ່ບໍ່ມີບັນຊີກ່ອນຫນ້ານີ້).
ຄໍາສັ່ງ LINE INTERFACE
luacheck ໂຄງການຍອມຮັບໄຟລ໌, ລາຍການແລະ ສະເປກຫີນ ເປັນການໂຕ້ຖຽງ.
·ໃຫ້ໄຟລ໌, luacheck ຈະກວດສອບມັນ.
· ມອບໃຫ້ -, luacheck ຈະກວດສອບ stdin.
·ໃຫ້ເປັນລະບົບ, luacheck ຈະກວດສອບໄຟລ໌ທັງຫມົດພາຍໃນມັນ, ເລືອກເອົາພຽງແຕ່ໄຟລ໌ທີ່ມີ
.ລູ ສ່ວນຂະຫຍາຍເວັ້ນເສຍແຕ່ --include-files ທາງເລືອກແມ່ນຖືກນໍາໃຊ້. ຄຸນສົມບັດນີ້ຕ້ອງການ
ລະບົບ LuaFile (ຕິດຕັ້ງໂດຍອັດຕະໂນມັດຖ້າ LuaRocks ຖືກໃຊ້ເພື່ອຕິດຕັ້ງ Luacheck).
· ໃຫ້ rockspec (ໄຟລ໌ທີ່ມີ .rockspec ນາມສະກຸນ), luacheck ຈະກວດສອບໄຟລ໌ທັງຫມົດທີ່ມີ
.ລູ ສ່ວນຂະຫຍາຍທີ່ໄດ້ກ່າວມາໃນ rockspec ໃນ build.install.lua, build.install.bin ແລະ
build.modules ຕາຕະລາງ.
ຜົນໄດ້ຮັບຂອງ luacheck ປະກອບດ້ວຍບົດລາຍງານແຍກຕ່າງຫາກສໍາລັບແຕ່ລະໄຟລ໌ທີ່ກວດສອບແລະລົງທ້າຍດ້ວຍ a
ສະຫຼຸບ:
$ 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: variable opt ຖືກກຳນົດໄວ້ກ່ອນໜ້ານີ້ເປັນການໂຕ້ຖຽງໃນແຖວທີ 7
src/bad_code.lua:9:11: ການເຂົ້າເຖິງຕົວແປທີ່ບໍ່ໄດ້ກໍານົດ
ກຳລັງກວດສອບ src/good_code.lua OK
ກຳລັງກວດສອບຂໍ້ຜິດພາດ src/python_code.lua 1
src/python_code.lua:1:6: ຄາດໄວ້ '=' ໃກ້ກັບ '__future__'
ກຳລັງກວດສອບ src/unused_code.lua 9 ຄຳເຕືອນ
src/unused_code.lua:3:18: unused argument baz
src/unused_code.lua:4:8: unused loop variable i
src/unused_code.lua:5:13: ຕົວແປທີ່ບໍ່ໄດ້ໃຊ້ q
src/unused_code.lua:7:11: unused loop variable a
src/unused_code.lua:7:14: ຕົວແປ loop ທີ່ບໍ່ໄດ້ໃຊ້ b
src/unused_code.lua:7:17: ຕົວແປ loop ທີ່ບໍ່ໄດ້ໃຊ້ c
src/unused_code.lua:13:7: ຄ່າທີ່ກຳນົດໃຫ້ກັບຕົວແປ x ແມ່ນບໍ່ໄດ້ໃຊ້.
src/unused_code.lua:14:1: ຄ່າທີ່ກຳນົດໃຫ້ກັບຕົວແປ x ແມ່ນບໍ່ໄດ້ໃຊ້.
src/unused_code.lua:22:1: ຄ່າທີ່ກຳນົດໃຫ້ກັບຕົວແປ z ແມ່ນບໍ່ໄດ້ໃຊ້.
ຈໍານວນທັງຫມົດ: 14 ເຕືອນ / 1 ຄວາມຜິດພາດໃນ 4 ໄຟລ໌
luacheck ອອກດ້ວຍ 0 ຖ້າບໍ່ມີການເຕືອນຫຼືຂໍ້ຜິດພາດເກີດຂຶ້ນແລະມີຕົວເລກບວກ
ຖ້າບໍ່ດັ່ງນັ້ນ.
ຄໍາສັ່ງ ອອນໄລນ໌ ທາງເລືອກໃນການ
ທາງເລືອກສັ້ນທີ່ບໍ່ໄດ້ໃຊ້ເວລາໂຕ້ຖຽງສາມາດໄດ້ຮັບການລວມເຂົ້າເປັນຫນຶ່ງ, ດັ່ງນັ້ນ -qqu is
ທຽບເທົ່າກັບ -q -q -u. ສໍາລັບທາງເລືອກທີ່ຍາວນານ, ທັງສອງ -- ທາງເລືອກ ມູນຄ່າ or --option=value ສາມາດ
ໃຊ້ແລ້ວ.
ທາງເລືອກໃນການໂຕ້ຖຽງຫຼາຍສາມາດນໍາໃຊ້ຫຼາຍຄັ້ງ; --ບໍ່ສົນໃຈ ຟູ --ບໍ່ສົນໃຈ ພາທະນາຍຄວາມ is
ທຽບເທົ່າກັບ --ບໍ່ສົນໃຈ ຟູ ພາທະນາຍຄວາມ.
ໃຫ້ສັງເກດວ່າທາງເລືອກທີ່ອາດຈະໃຊ້ເວລາການໂຕ້ຖຽງຫຼາຍ, ເຊັ່ນ: -- ໂລກ, ບໍ່ຄວນໃຊ້
ທັນທີກ່ອນທີ່ຈະໂຕ້ຖຽງຕໍາແຫນ່ງ; ມອບໃຫ້ -- ໂລກ ຟູ ພາທະນາຍຄວາມ file.lua, luacheck ຈະ
ພິຈາລະນາທັງຫມົດ ຟູ, ພາທະນາຍຄວາມ ແລະ file.lua ທົ່ວໂລກ ແລະຫຼັງຈາກນັ້ນຕົກໃຈເພາະບໍ່ມີຊື່ໄຟລ໌ເຫຼືອຢູ່.
┌────────────────────────────────────────────── ─────────────────────┐
│ທາງເລືອກ │ ຄວາມໝາຍ │
├─────────────────────────────────────────── ──────────────────────┤
│-g | -- ບໍ່ມີທົ່ວໂລກ │ ກັ່ນຕອງຄຳເຕືອນທີ່ກ່ຽວຂ້ອງກັບ │
│ │ ຕົວແປທົ່ວໂລກ. │
├─────────────────────────────────────────── ──────────────────────┤
│-u | --no-unused │ ກັ່ນຕອງຄຳເຕືອນທີ່ກ່ຽວຂ້ອງກັບ │
│ │ ຕົວແປ ແລະຄ່າທີ່ບໍ່ໄດ້ໃຊ້. │
├─────────────────────────────────────────── ──────────────────────┤
│-r | --no-redefined │ ກັ່ນຕອງຄຳເຕືອນທີ່ກ່ຽວຂ້ອງກັບ │
│ │ ກຳນົດຕົວແປຄືນໃໝ່. │
├─────────────────────────────────────────── ──────────────────────┤
│-a | --no-unused-args │ ກັ່ນຕອງຄຳເຕືອນທີ່ກ່ຽວຂ້ອງກັບ │
│ │ ອາກິວເມັນທີ່ບໍ່ໄດ້ໃຊ້ ແລະ loop │
│ │ ຕົວແປ. │
├─────────────────────────────────────────── ──────────────────────┤
│-s | --no-unused-secondaries │ ກັ່ນຕອງຄຳເຕືອນທີ່ກ່ຽວຂ້ອງກັບ │
│ │ ຕົວແປທີ່ບໍ່ໄດ້ໃຊ້ຕັ້ງຮ່ວມກັນ │
│ │ ກັບອັນທີ່ໃຊ້ແລ້ວ. │
│ │ │
│ │ ເບິ່ງ Secondvaluesandvariables │
├─────────────────────────────────────────── ──────────────────────┤
│--ບໍ່ມີຕົວຕົນ │ ກັ່ນຕອງຄຳເຕືອນທີ່ກ່ຽວຂ້ອງກັບ │
│ │ implicit ຕົນເອງ ການໂຕ້ຖຽງ. │
└──────────────────────────────────────────── ──────────────────────┘
│--std │ ຕັ້ງມາດຕະຖານທົ່ວໂລກ. ສາມາດ│
│ │ ເປັນໜຶ່ງໃນ: │
│ │ │
│ │ · _G - ທົ່ວໂລກຂອງ Lua │
│ │ ນາຍພາສາ luacheck │
│ │ ແລ່ນເທິງ (ຄ່າເລີ່ມຕົ້ນ); │
│ │ │
│ │ · lua51 - ທົ່ວໂລກຂອງ Lua │
│ │ 5.1 ; │
│ │ │
│ │ · lua52 - ທົ່ວໂລກຂອງ Lua │
│ │ 5.2 ; │
│ │ │
│ │ · lua52c - ທົ່ວໂລກຂອງ Lua │
│ │ 5.2 ລວບລວມດ້ວຍ │
│ │ LUA_COMPAT_ALL; │
│ │ │
│ │ · lua53 - ທົ່ວໂລກຂອງ Lua │
│ │ 5.3 ; │
│ │ │
│ │ · lua53c - ທົ່ວໂລກຂອງ Lua │
│ │ 5.3 ລວບລວມດ້ວຍ │
│ │ LUA_COMPAT_5_2; │
│ │ │
│ │ · ປ່ອຍມັນ - ທົ່ວໂລກຂອງ │
│ │ LuaJIT 2.0; │
│ │ │
│ │ · ngx_lua - ທົ່ວໂລກຂອງ │
│ │ Openresty │
││ lua-nginx-module ດ້ວຍ │
│ │ LuaJIT 2.0; │
│ │ │
│ │ · ນາທີ - ທາງຕັດຂອງ │
│ │ ທົ່ວໂລກຂອງ Lua 5.1, Lua │
│ │ 5.2 ແລະ LuaJIT 2.0; │
│ │ │
│ │ · ສູງສຸດທີ່ເຄຍ - ສະຫະພັນໂລກ │
│ │ ຂອງ Lua 5.1, Lua 5.2 ແລະ │
│ │ LuaJIT 2.0; │
│ │ │
│ │ · busted - ທົ່ວໂລກເພີ່ມ │
│ │ ໂດຍ Busted 2.0; │
│ │ │
│ │ · none - ບໍ່ມີມາດຕະຖານ│
│ │ ທົ່ວໂລກ. │
│ │ │
│ │ ເບິ່ງ ຊຸດ of ມາດຕະຖານ │
││ ໂລກ │
├─────────────────────────────────────────── ──────────────────────┤
│-- ໂລກ [ ] ... │ ຕື່ມການທົ່ວໂລກແບບກຳນົດເອງຢູ່ເທິງສຸດຂອງ │
│ │ ມາດຕະຖານ. │
├─────────────────────────────────────────── ──────────────────────┤
│--read-globals [ ] ... │ ເພີ່ມການອ່ານເທົ່ານັ້ນທົ່ວໂລກ. │
├─────────────────────────────────────────── ──────────────────────┤
│-- ໂລກໃໝ່ [ ] ... │ ຕັ້ງຄ່າທົ່ວໂລກແບບກຳນົດເອງ. ເອົາອອກ │
│ │ ກຳນົດເອງທົ່ວໂລກທີ່ເພີ່ມເຂົ້າມາກ່ອນໜ້ານີ້. │
├─────────────────────────────────────────── ──────────────────────┤
│--new-read-globals [ ] │ ຕັ້ງຄ່າການອ່ານເທົ່ານັ້ນທົ່ວໂລກ. ເອົາອອກ │
│... │ ເພີ່ມທົ່ວໂລກແບບອ່ານເທົ່ານັ້ນ │
│ │ ກ່ອນຫນ້ານີ້. │
├─────────────────────────────────────────── ──────────────────────┤
│-c | --compat │ ເທົ່າກັບ --std ສູງສຸດທີ່ເຄຍ. │
└──────────────────────────────────────────── ──────────────────────┘
│-d | -- ອະນຸຍາດໃຫ້ກໍານົດ │ ອະນຸຍາດໃຫ້ກໍານົດທົ່ວໂລກ │
│ │ implicitly ໂດຍການຕັ້ງຄ່າໃຫ້ເຂົາເຈົ້າ. │
│ │ │
│ │ ເບິ່ງ globals │
├─────────────────────────────────────────── ──────────────────────┤
│-t | --allow-defined-top │ ອະນຸຍາດໃຫ້ກໍານົດທົ່ວໂລກ │
│ │ ໂດຍຫຍໍ້ໂດຍການຕັ້ງພວກມັນຢູ່ໃນ │
│ │ ຂອບເຂດລະດັບສູງສຸດ. │
│ │ │
│ │ ເບິ່ງ globals │
├─────────────────────────────────────────── ──────────────────────┤
│-m | --ໂມດູນ │ ຈຳກັດການເບິ່ງເຫັນຂອງ implicitly │
│ │ ກຳນົດທົ່ວໂລກໃຫ້ກັບໄຟລ໌ຂອງເຂົາເຈົ້າ. │
│ │ │
│ │ ເບິ່ງໂມດູນ │
├─────────────────────────────────────────── ──────────────────────┤
│--ບໍ່ສົນໃຈ | -i [ ] │ ກັ່ນຕອງອອກຄຳເຕືອນທີ່ກົງກັນ │
│... │ ຮູບແບບ. │
├─────────────────────────────────────────── ──────────────────────┤
│--ເປີດໃຊ້ງານ | -e [ ] │ ຢ່າກັ່ນກອງຄຳເຕືອນ │
│... │ ຮູບແບບທີ່ກົງກັນ. │
├─────────────────────────────────────────── ──────────────────────┤
│-- ເທົ່ານັ້ນ | -o [ ] ... │ ກັ່ນຕອງອອກຄຳເຕືອນທີ່ບໍ່ກົງກັນ │
│ │ ຮູບແບບ. │
├─────────────────────────────────────────── ──────────────────────┤
│-- ບໍ່ມີໃນແຖວ │ ປິດຕົວເລືອກໃນແຖວ. │
├─────────────────────────────────────────── ──────────────────────┤
│--config │ ເສັ້ນທາງໄປສູ່ການຕັ້ງຄ່າແບບກຳນົດເອງ │
│ │ ໄຟລ໌ (ຄ່າເລີ່ມຕົ້ນ: .luacheckrc). │
├─────────────────────────────────────────── ──────────────────────┤
│--no-config │ ຢ່າຊອກຫາແບບກຳນົດເອງ │
│ │ ໄຟລ໌ການຕັ້ງຄ່າ. │
├─────────────────────────────────────────── ──────────────────────┤
│--ຊື່ເອກະສານ │ ໃຊ້ຊື່ໄຟລ໌ອື່ນໃນຜົນຜະລິດ, │
│ │ ສໍາລັບການເລືອກການຕັ້ງຄ່າ │
│ │ ແທນທີ່ ແລະສຳລັບໄຟລ໌ │
│ │ ການກັ່ນຕອງ. │
├─────────────────────────────────────────── ──────────────────────┤
│--exclude-files [ ] │ ຢ່າກວດເບິ່ງໄຟລ໌ທີ່ກົງກັນ │
│... │ ຮູບແບບການ globbing ເຫຼົ່ານີ້. │
│ │ ໜ່ວຍໂລກຊ້ຳໆເຊັ່ນ **/*.lua │
│ │ ຮອງຮັບ. │
├─────────────────────────────────────────── ──────────────────────┤
│--include-files [ ] │ ຢ່າກວດເບິ່ງໄຟລ໌ບໍ່ກົງກັນ │
│... │ ຮູບແບບການ globbing ເຫຼົ່ານີ້. │
├─────────────────────────────────────────── ──────────────────────┤
│--cache [ ] │ ເສັ້ນທາງໄປຫາໄຟລ໌ cache. (ຄ່າເລີ່ມຕົ້ນ: │
││ .luacheckcache) ເບິ່ງ Caching │
├─────────────────────────────────────────── ──────────────────────┤
│--no-cache │ ຢ່າໃຊ້ cache. │
├─────────────────────────────────────────── ──────────────────────┤
│-j | --ວຽກ │ ກວດສອບ ໄຟລ໌ໃນຂະຫນານ. │
│ │ ຕ້ອງການ ລູອາເລນ. │
└──────────────────────────────────────────── ──────────────────────┘
│--formatter │ ໃຊ້ຕົວຟໍແມັດແບບກຳນົດເອງ. │
││ ຕ້ອງເປັນໂມດູນ │
│ │ ຊື່ ຫຼື ໜຶ່ງໃນ: │
│ │ │
│ │ · TAP - ທົດສອບທຸກຢ່າງ │
│ │ Protocol formatter; │
│ │ │
│ │ · JUnit - JUnit XML │
│ │ ຕົວຈັດຮູບແບບ; │
│ │ │
│ │ · ທໍາມະດາ - ງ່າຍດາຍ │
│ │ ເຕືອນຕໍ່ແຖວ │
│ │ ຕົວຈັດຮູບແບບ; │
│ │ │
│ │ · Default - ມາດຕະຖານ │
│ │ ຕົວຈັດຮູບແບບ. │
├─────────────────────────────────────────── ──────────────────────┤
│-q | --ງຽບ │ ສະກັດກັ້ນຜົນໄດ້ຮັບຂອງບົດລາຍງານສໍາລັບໄຟລ໌ │
│ │ ໂດຍບໍ່ມີການເຕືອນ. │
│ │ │
│ │ · -qq - ສະກັດກັ້ນຜົນຜະລິດ │
│ │ ຂອງການເຕືອນ. │
│ │ │
│ │ · -qqq - ຜົນຜະລິດ │ ເທົ່ານັ້ນ
│ │ ສະຫຼຸບ. │
├─────────────────────────────────────────── ──────────────────────┤
│--ລະຫັດ │ ສະແດງລະຫັດເຕືອນ. │
├─────────────────────────────────────────── ──────────────────────┤
│-- ຊ່ວງ │ ສະແດງຂອບເຂດຂອງຖັນທີ່ກ່ຽວຂ້ອງ │
│ │ ຕໍ່ຄຳເຕືອນ. │
├─────────────────────────────────────────── ──────────────────────┤
│--ບໍ່ມີສີ │ ຢ່າໃສ່ສີຜົນຜະລິດ. │
├─────────────────────────────────────────── ──────────────────────┤
│-v | - ການປ່ຽນແປງ │ ສະແດງລຸ້ນ Luacheck ແລະ │ ຂອງມັນ
│ │ ການຂື້ນກັບ ແລະອອກ. │
├─────────────────────────────────────────── ──────────────────────┤
│-h | - ຊ່ວຍ │ ສະແດງການຊ່ວຍເຫຼືອ ແລະອອກ. │
└──────────────────────────────────────────── ──────────────────────┘
ຮູບແບບການ
ຕົວເລືອກ CLI --ບໍ່ສົນໃຈ, --ເປີດໃຊ້ງານ ແລະ -- ເທົ່ານັ້ນ ແລະທາງເລືອກ config ທີ່ສອດຄ້ອງກັນອະນຸຍາດໃຫ້ການກັ່ນຕອງ
ການເຕືອນໄພການນໍາໃຊ້ການຈັບຄູ່ຮູບແບບກ່ຽວກັບລະຫັດການເຕືອນ, ຊື່ຕົວປ່ຽນແປງຫຼືທັງສອງ. ຖ້າເປັນຮູບແບບ
ປະກອບມີ slash, ສ່ວນກ່ອນ slash ກົງກັບລະຫັດເຕືອນແລະສ່ວນຫຼັງຈາກການແຂ່ງຂັນ
ຊື່ຕົວແປ. ຖ້າບໍ່ດັ່ງນັ້ນ, ຖ້າຫາກວ່າຮູບແບບທີ່ມີຕົວອັກສອນຫຼື underscore, ມັນກົງກັນ
ຊື່ຕົວແປ. ຖ້າບໍ່ດັ່ງນັ້ນ, ມັນກົງກັບລະຫັດເຕືອນ. ຕົວຢ່າງ:
┌──────────────────────────────────────
│ຮູບແບບ │ ຄຳເຕືອນທີ່ກົງກັນ │
├─────────────────────────────────────────
│4.2 │ ການປະກາດເງົາຂອງ │
│ │ arguments ຫຼື redefining ເຂົາເຈົ້າ. │
├─────────────────────────────────────────
│.*_ │ ຄຳເຕືອນທີ່ກ່ຽວຂ້ອງກັບຕົວແປ │
│ │ ກັບ _ ຕໍ່ທ້າຍ. │
├─────────────────────────────────────────
│4.2/.*_ │ ການປະກາດເງົາຂອງ │
│ │ ໂຕ້ຖຽງກັບ _ ຄຳຕໍ່ທ້າຍ ຫຼື │
│ │ ນິຍາມພວກມັນຄືນໃໝ່. │
└────────────────────────────────────────
ເວັ້ນເສຍແຕ່ວ່າສະມໍແລ້ວ, ຮູບແບບທີ່ກົງກັບຊື່ຕົວແປແມ່ນສະມໍຢູ່ທັງສອງດ້ານ ແລະ
ຮູບແບບທີ່ກົງກັບລະຫັດເຕືອນໄພແມ່ນຕິດຢູ່ຈຸດເລີ່ມຕົ້ນ. ນີ້ອະນຸຍາດໃຫ້ຫນຶ່ງ
ການກັ່ນຕອງຄໍາເຕືອນຕາມປະເພດ (ເຊັ່ນ -- ເທົ່ານັ້ນ 1 focuses luacheck ກ່ຽວກັບການເຕືອນໄພໃນທົ່ວໂລກ).
ຊຸດ of ມາດຕະຖານ ໂລກ
ທາງເລືອກ CLI --stds ອະນຸຍາດໃຫ້ປະສົມຜະລິດໃນຊຸດທີ່ອະທິບາຍຂ້າງເທິງນີ້ໂດຍນໍາໃຊ້ +ທີ່ຢູ່ ຍົກຕົວຢ່າງ,
--std ສູງສຸດທີ່ເຄຍ ເທົ່າກັບ --std=lua51+lua52+lua53. ເຄື່ອງໝາຍບວກນຳໜ້າຈະເພີ່ມຊຸດໃໝ່ໃສ່
ຄ່າເລີ່ມຕົ້ນແທນການປ່ຽນແທນມັນ. ຕົວຢ່າງ, --std +ຖືກຕີ ແມ່ນເຫມາະສົມສໍາລັບການກວດສອບ
ໄຟລ໌ທົດສອບທີ່ໃຊ້ Busted ໂຄງການທົດສອບ. ຊຸດທີ່ກໍາຫນົດເອງຂອງໂລກສາມາດຖືກກໍານົດໂດຍ
ປ່ຽນຕົວແປທົ່ວໂລກ ລຳ ໄມ້ ໃນ config. ເບິ່ງ custom_stds
ຮູບແບບ
ທາງເລືອກ CLI --formatter ອະນຸຍາດໃຫ້ເລືອກຮູບແບບທີ່ກໍາຫນົດເອງສໍາລັບ luacheck ຜົນຜະລິດ. ປະເພນີ
formatter ແມ່ນໂມດູນ Lua ທີ່ສົ່ງຄືນຟັງຊັນທີ່ມີສາມ arguments: ລາຍງານທີ່ສົ່ງຄືນໂດຍ
luacheck module (ເບິ່ງບົດລາຍງານ), array ຂອງຊື່ໄຟລ໌ແລະຕາຕະລາງທາງເລືອກ. ທາງເລືອກປະກອບມີ
ຄ່າທີ່ກໍານົດໃຫ້ ງຽບ, ສີ, ກໍານົດຂອບເຂດ, ລະຫັດ, ຂອບເຂດ ແລະ ຜູ້ຈັດຮູບແບບ ທາງເລືອກໃນ CLI ຫຼື
ກຳນົດຄ່າ. ຟັງຊັນຟໍແມັດຕ້ອງສົ່ງສະຕຣິງຄືນ.
Caching
ຖ້າ LuaFileSystem ມີຢູ່, Luacheck ສາມາດ cache ຜົນຂອງການກວດສອບໄຟລ໌. ຕໍ່ໄປ
ການກວດສອບ, ພຽງແຕ່ໄຟລ໌ທີ່ມີການປ່ຽນແປງນັບຕັ້ງແຕ່ການກວດສອບຄັ້ງສຸດທ້າຍຈະຖືກກວດສອບໃຫມ່, ປັບປຸງ
ແລ່ນເວລາຢ່າງຫຼວງຫຼາຍ. ການປ່ຽນແປງທາງເລືອກ (ເຊັ່ນ: ການກໍານົດໂລກເພີ່ມເຕີມ) ບໍ່ໄດ້
ບໍ່ຖືກຕ້ອງ cache. Caching ສາມາດຖືກເປີດໃຊ້ໂດຍການນໍາໃຊ້ --cache ທາງເລືອກຫຼື ຖານຄວາມຈໍາ config
ທາງເລືອກ. ການນໍາໃຊ້ --cache ໂດຍບໍ່ມີການໂຕ້ຖຽງຫຼືການຕັ້ງຄ່າ ຖານຄວາມຈໍາ config ທາງເລືອກທີ່ຈະ ທີ່ແທ້ຈິງ ຊຸດ
.luacheckcache ເປັນໄຟລ໌ cache. ໃຫ້ສັງເກດວ່າ --cache ຕ້ອງໃຊ້ທຸກຄັ້ງ luacheck is
ແລ່ນ, ບໍ່ແມ່ນການແລ່ນຄັ້ງທໍາອິດເທົ່ານັ້ນ.
ຫມັ້ນຄົງ ການໂຕ້ຕອບ ສໍາລັບການ ບັນນາທິການ plugins ແລະ ເຄື່ອງມື
ການໂຕ້ຕອບເສັ້ນຄໍາສັ່ງຂອງ Luacheck ສາມາດປ່ຽນແປງລະຫວ່າງການປ່ອຍເລັກນ້ອຍ. ເລີ່ມແຕ່ 0.11.0
ສະບັບ, ການໂຕ້ຕອບດັ່ງຕໍ່ໄປນີ້ແມ່ນການຮັບປະກັນຢ່າງຫນ້ອຍຈົນກ່ວາ 1.0.0 ສະບັບ, ແລະຄວນຈະເປັນ
ໃຊ້ໂດຍເຄື່ອງມືທີ່ໃຊ້ Luacheck output, ຕົວຢ່າງ plugins ບັນນາທິການ.
· Luacheck ຄວນເລີ່ມຕົ້ນຈາກໄດເລກະທໍລີທີ່ປະກອບດ້ວຍໄຟລ໌ທີ່ຖືກກວດສອບ.
·ໄຟລ໌ສາມາດຜ່ານ stdin ໂດຍໃຊ້ - ເປັນການໂຕ້ຖຽງ ຫຼືໃຊ້ໄຟລ໌ຊົ່ວຄາວ. ທີ່ແທ້ຈິງ
ຊື່ໄຟລ໌ຄວນຈະຖືກສົ່ງຜ່ານໂດຍໃຊ້ --ຊື່ເອກະສານ ທາງເລືອກ.
· ຄວນໃຊ້ຕົວຟໍແມັດທຳມະດາ. ມັນອອກຫນຶ່ງບັນຫາ (ຄໍາເຕືອນຫຼືຄວາມຜິດພາດ) ຕໍ່ແຖວ.
·ເພື່ອໃຫ້ໄດ້ຮັບສະຖານທີ່ຄວາມຜິດພາດທີ່ຊັດເຈນ, -- ຊ່ວງ ທາງເລືອກສາມາດນໍາໃຊ້. ແຕ່ລະສາຍເລີ່ມຕົ້ນດ້ວຍຈິງ
ຊື່ໄຟລ໌ (ຜ່ານການນໍາໃຊ້ --ຊື່ເອກະສານ), ຕາມດ້ວຍ : : - :,
ບ່ອນທີ່ ແມ່ນເລກແຖວກ່ຽວກັບບັນຫາທີ່ເກີດຂຶ້ນ ແລະ - is
ຊ່ວງລວມຂອງຖັນຂອງ token ທີ່ກ່ຽວຂ້ອງກັບບັນຫາ. ຕົວເລກເລີ່ມຕົ້ນຈາກ 1. ຖ້າ
-- ຊ່ວງ ບໍ່ໄດ້ຖືກນໍາໃຊ້, ຖັນທ້າຍແລະ dash ບໍ່ໄດ້ຖືກພິມ.
·ເພື່ອໄດ້ຮັບການເຕືອນໄພແລະລະຫັດຄວາມຜິດພາດ, --ລະຫັດ ທາງເລືອກສາມາດນໍາໃຊ້. ສໍາລັບແຕ່ລະແຖວ, substring
ລະຫວ່າງວົງເລັບມີລະຫັດບັນຫາສາມຕົວເລກ, ປະກອບດ້ວຍ E ສໍາລັບຄວາມຜິດພາດແລະ W
ສໍາລັບການເຕືອນໄພ. ການຂາດສາຍຍ່ອຍດັ່ງກ່າວສະແດງເຖິງຄວາມຜິດພາດທີ່ຮ້າຍແຮງ (ເຊັ່ນ: ຄວາມຜິດພາດ I/O).
·ສ່ວນທີ່ເຫຼືອຂອງສາຍແມ່ນຂໍ້ຄວາມເຕືອນ.
ຖ້າຄວາມເຂົ້າກັນໄດ້ກັບລຸ້ນ Luacheck ເກົ່າແມ່ນຕ້ອງການ, ຜົນຜະລິດຂອງ luacheck - ຊ່ວຍ ສາມາດ
ໃຊ້ເພື່ອໃຫ້ໄດ້ສະບັບຂອງມັນ. ຖ້າມັນມີສະຕຣິງ 0. ., ບ່ອນທີ່ ແມ່ນຢູ່
ຢ່າງໜ້ອຍ 11 ແລະ patch ແມ່ນຕົວເລກໃດກໍ່ຕາມ, ການໂຕ້ຕອບທີ່ອະທິບາຍຂ້າງເທິງນີ້ຄວນຈະຖືກນໍາໃຊ້.
CONFIGURATION ເອກະສານ
luacheck ພະຍາຍາມໂຫຼດການຕັ້ງຄ່າຈາກ .luacheckrc ໄຟລ໌ຢູ່ໃນໄດເລກະທໍລີປະຈຸບັນ. ຖ້າ
ບໍ່ພົບ, ມັນຈະຊອກຫາມັນຢູ່ໃນໄດເລກະທໍລີພໍ່ແມ່ແລະອື່ນໆ, ຂຶ້ນໄປຈົນກ່ວາມັນ
ຮອດຮາກລະບົບໄຟລ໌. ເສັ້ນທາງໄປຫາ config ສາມາດຖືກກໍານົດໂດຍໃຊ້ --config ທາງເລືອກ, ໃນກໍລະນີນີ້
ມັນຈະຖືກນໍາໃຊ້ໃນລະຫວ່າງການໂຫຼດ recursive. ການໂຫຼດ config ສາມາດຖືກປິດການໃຊ້ງານ --no-config
ທຸງ.
Config ແມ່ນພຽງແຕ່ script Lua ປະຕິບັດໂດຍ luacheck. ມັນອາດຈະກໍານົດທາງເລືອກຕ່າງໆໂດຍ
ມອບໝາຍໃຫ້ທົ່ວໂລກ ຫຼືໂດຍການສົ່ງຄືນຕາຕະລາງທີ່ມີຊື່ທາງເລືອກເປັນກະແຈ.
config ທາງເລືອກໃນການ
┌──────────────────── ┬───────────────────────── ─────────────────────┐
│ທາງເລືອກ │ ປະເພດ │ ຄ່າເລີ່ມຕົ້ນ │
├───────────────────────────────────────────────── ──────────────────────┤
│ສີ │ Boolean │ ທີ່ແທ້ຈິງ │
├───────────────────────────────────────────────── ──────────────────────┤
│ລະຫັດ │ Boolean │ ທີ່ບໍ່ຖືກຕ້ອງ │
└────────────────────────────────────────────────────┴── ──────────────────────┘
│ຜູ້ຈັດຮູບແບບ │ ສາຍ ຫຼື ຟັງຊັນ │ "ຄ່າເລີ່ມຕົ້ນ" │
├───────────────────────────────────────────────── ──────────────────────┤
│ຖານຄວາມຈໍາ │ Boolean ຫຼື string │ ທີ່ບໍ່ຖືກຕ້ອງ │
├───────────────────────────────────────────────── ──────────────────────┤
│ວຽກເຮັດງານທໍາ │ ຈຳນວນເຕັມບວກ │ 1 │
├───────────────────────────────────────────────── ──────────────────────┤
│exclude_files │ Array of strings │ {} │
├───────────────────────────────────────────────── ──────────────────────┤
│include_files │ Array of strings │ (ລວມທຸກໄຟລ໌) │
├───────────────────────────────────────────────── ──────────────────────┤
│ທົ່ວໂລກ │ Boolean │ ທີ່ແທ້ຈິງ │
├───────────────────────────────────────────────── ──────────────────────┤
│ບໍ່ໃຊ້ │ Boolean │ ທີ່ແທ້ຈິງ │
├───────────────────────────────────────────────── ──────────────────────┤
│ກຳ ນົດຄືນ ໃໝ່ │ Boolean │ ທີ່ແທ້ຈິງ │
├───────────────────────────────────────────────── ──────────────────────┤
│unused_args │ Boolean │ ທີ່ແທ້ຈິງ │
├───────────────────────────────────────────────── ──────────────────────┤
│unused_secondaries │ Boolean │ ທີ່ແທ້ຈິງ │
├───────────────────────────────────────────────── ──────────────────────┤
│ຕົນເອງ │ Boolean │ ທີ່ແທ້ຈິງ │
├───────────────────────────────────────────────── ──────────────────────┤
│std │ ສາຍ ຫຼື ຊຸດຂອງ │ "_G" │
│ │ ມາດຕະຖານທົ່ວໂລກ │ │
├───────────────────────────────────────────────── ──────────────────────┤
│ໂລກ │ Array of strings │ {} │
├───────────────────────────────────────────────── ──────────────────────┤
│new_globals │ Array of strings │ (ຫ້າມຂຽນທັບ) │
├───────────────────────────────────────────────── ──────────────────────┤
│read_globals │ Array of strings │ {} │
├───────────────────────────────────────────────── ──────────────────────┤
│new_read_globals │ Array of strings │ (ຫ້າມຂຽນທັບ) │
├───────────────────────────────────────────────── ──────────────────────┤
│compat │ Boolean │ ທີ່ບໍ່ຖືກຕ້ອງ │
├───────────────────────────────────────────────── ──────────────────────┤
│allow_defined │ Boolean │ ທີ່ບໍ່ຖືກຕ້ອງ │
├───────────────────────────────────────────────── ──────────────────────┤
│allow_defined_top │ Boolean │ ທີ່ບໍ່ຖືກຕ້ອງ │
├───────────────────────────────────────────────── ──────────────────────┤
│ໂມດູນ │ Boolean │ ທີ່ບໍ່ຖືກຕ້ອງ │
├───────────────────────────────────────────────── ──────────────────────┤
│ບໍ່ສົນໃຈ │ array ຂອງຮູບແບບ (ເບິ່ງ │ {} │
│ │ ຮູບແບບ) │ │
├───────────────────────────────────────────────── ──────────────────────┤
│ເຮັດໃຫ້ສາມາດ │ array ຂອງຮູບແບບ │ {} │
├───────────────────────────────────────────────── ──────────────────────┤
│ພຽງແຕ່ │ array ຂອງຮູບແບບ │ (ຢ່າກອງ) │
├───────────────────────────────────────────────── ──────────────────────┤
│inline │ Boolean │ ທີ່ແທ້ຈິງ │
└────────────────────────────────────────────────────┴── ──────────────────────┘
ຕົວຢ່າງຂອງ config ທີ່ເຮັດໃຫ້ luacheck ຮັບປະກັນວ່າມີພຽງແຕ່ທົ່ວໂລກຈາກ Portable
ການຕັດກັນຂອງ Lua 5.1, Lua 5.2, Lua 5.3 ແລະ LuaJIT 2.0 ຖືກໃຊ້, ເຊັ່ນດຽວກັນກັບການປິດການໃຊ້ງານ.
ການກວດສອບການໂຕ້ຖຽງທີ່ບໍ່ໄດ້ນໍາໃຊ້:
std = "ນາທີ"
ບໍ່ສົນໃຈ = {"212"}
Custom ຊຸດ of ໂລກ
std ທາງເລືອກອະນຸຍາດໃຫ້ການຕັ້ງຄ່າມາດຕະຖານທີ່ກໍານົດໄວ້ຂອງໂລກໂດຍນໍາໃຊ້ຕາຕະລາງ. ໃນຕາຕະລາງນັ້ນ,
ປຸ່ມສະຕຣິງແມ່ນທົ່ວໂລກ, ແລະສະຕຣິງໃນສ່ວນອາເຣແມ່ນເປັນສ່ວນລວມທີ່ອ່ານໄດ້ເທົ່ານັ້ນ.
ນອກຈາກນັ້ນ, ຊຸດທີ່ກໍາຫນົດເອງສາມາດໃຫ້ຊື່ໂດຍການປ່ຽນເປັນທົ່ວໂລກ ລຳ ໄມ້ ຕົວແປ. ສໍາລັບ
ຕົວຢ່າງ, ເມື່ອໃຊ້ LPEG ຫໍສະຫມຸດ, ມັນເຮັດໃຫ້ຄວາມຮູ້ສຶກໃນການເຂົ້າເຖິງຫນ້າທີ່ຂອງຕົນ tersely ການນໍາໃຊ້
ທົ່ວໂລກ. ໃນກໍລະນີນັ້ນ, ການຕັ້ງຄ່າດັ່ງຕໍ່ໄປນີ້ອະນຸຍາດໃຫ້ລົບຜົນບວກທີ່ບໍ່ຖືກຕ້ອງກ່ຽວກັບການ
ການເຂົ້າເຖິງທົ່ວໂລກໄດ້ຢ່າງງ່າຍດາຍ:
stds.lpeg = ຕ້ອງການ "lpeg"
lpeg ທ້ອງຖິ່ນ = ຕ້ອງການ "lpeg"
ຟັງຊັນທ້ອງຖິ່ນ parse1(...)
-- ຟັງຊັນນີ້ໃຊ້ພຽງແຕ່ຟັງຊັນ lpeg ເປັນທົ່ວໂລກ.
local _ENV = lpeg
-- luacheck: std lpeg
ຕົວເລກທ້ອງຖິ່ນ, space = R "09", S ""
--...
ໃນຕອນທ້າຍ
ຟັງຊັນທ້ອງຖິ່ນ parse2(...)
-- ຟັງຊັນນີ້ໃຊ້ຟັງຊັນ lpeg ເຊັ່ນດຽວກັນກັບມາດຕະຖານທົ່ວໂລກ.
local _ENV = setmetatable({}, {__index = function(_, k) return _ENV[k] ຫຼື lpeg[k] end})
-- luacheck: std +lpeg
ຕົວເລກທ້ອງຖິ່ນ, space = R "09", S ""
ຕົວເລກທ້ອງຖິ່ນ = C(digit^1) / tonumber
--...
ໃນຕອນທ້າຍ
ຕໍ່ໄຟລ໌ ແລະ ຕໍ່ເສັ້ນທາງ overrides
ສະພາບແວດລ້ອມທີ່ luacheck ໂຫຼດ config ປະກອບດ້ວຍໂລກພິເສດ ໄຟທີ່ຢູ່ ເມື່ອໃດ
ການກວດສອບໄຟລ໌ , luacheck ຈະ override ທາງ ເລືອກ ຈາກ config ຕົ້ນ ຕໍ ທີ່ ມີ ລາຍ ການ
ຈາກ ໄຟລ໌[ ] ແລະ ໄຟລ໌[ ], ນຳໃຊ້ລາຍການສຳລັບເສັ້ນທາງທີ່ສັ້ນກວ່າກ່ອນ. ສໍາລັບ
ຕົວຢ່າງ, config ຕໍ່ໄປນີ້ເຮັດໃຫ້ສາມາດກວດພົບການໂຕ້ຖຽງທີ່ບໍ່ໄດ້ໃຊ້ຄືນໃຫມ່ພຽງແຕ່ສໍາລັບໄຟລ໌ໃນ
src/dir, ແຕ່ບໍ່ແມ່ນສໍາລັບ src/dir/myfile.lua, ແລະອະນຸຍາດໃຫ້ນໍາໃຊ້ Busted ທົ່ວໂລກພາຍໃນ spec /:
std = "ນາທີ"
ບໍ່ສົນໃຈ = {"212"}
files["src/dir"] = {ເປີດໃຊ້ງານ = {"212"}}
files["src/dir/myfile.lua"] = {ignore = {"212"}}
files["spec"] = {std = "+busted"}
ໃຫ້ສັງເກດວ່າ ໄຟ ຕາຕະລາງສະຫນັບສະຫນູນ autovivification, ດັ່ງນັ້ນ
files["myfile.lua"].ignore = {"212"}
ແລະ
files["myfile.lua"] = {ignore = {"212"}}
ທຽບເທົ່າ.
ອິນເຕີເນັດ OPTIONS
Luacheck ສະຫນັບສະຫນູນການຕັ້ງຄ່າບາງທາງເລືອກໂດຍກົງໃນໄຟລ໌ທີ່ກວດສອບໂດຍໃຊ້ inline
ຄໍາເຫັນການຕັ້ງຄ່າ. ຄຳເຫັນການກຳນົດຄ່າໃນແຖວເລີ່ມຕົ້ນດ້ວຍ luacheck: ປ້າຍຊື່,
ອາດຈະເປັນຫຼັງຈາກບາງຊ່ອງຫວ່າງ. ເນື້ອໃນຂອງຄຳເຫັນຄວນມີເຄື່ອງໝາຍຈຸດທີ່ແຍກອອກ
ທາງເລືອກ, ບ່ອນທີ່ invocation ທາງເລືອກປະກອບດ້ວຍຊື່ຂອງມັນບວກກັບຊ່ອງແຍກ arguments. ໄດ້
ທາງເລືອກດັ່ງຕໍ່ໄປນີ້ແມ່ນສະຫນັບສະຫນູນ:
┌──────────────────────────────────────────── ─────┐
│ຕົວເລືອກ │ ຈຳນວນອາກິວເມັນ │
├────────────────────────────────────────── ─────┤
│ທົ່ວໂລກ │ 0 │
├────────────────────────────────────────── ─────┤
│unused │ 0 │
├────────────────────────────────────────── ─────┤
│ ກຳນົດຄືນໃໝ່ │ 0 │
├────────────────────────────────────────── ─────┤
│ unused args │ 0 │
├────────────────────────────────────────── ─────┤
│ໂຕຮອງທີ່ບໍ່ໄດ້ໃຊ້ │ 0 │
├────────────────────────────────────────── ─────┤
│ ຕົນເອງ │ 0 │
└────────────────────────────────────────── ─────┘
│ compat │ 0 │
├────────────────────────────────────────── ─────┤
│ໂມດູນ │ 0 │
├────────────────────────────────────────── ─────┤
│ອະນຸຍາດໃຫ້ກໍານົດ │ 0 │
├────────────────────────────────────────── ─────┤
│ອະນຸຍາດໃຫ້ເທິງສຸດ │ 0 │
├────────────────────────────────────────── ─────┤
│std │ 1 │
├────────────────────────────────────────── ─────┤
│ທົ່ວໂລກ │ 0+ │
├────────────────────────────────────────── ─────┤
│ໂລກໃໝ່ │ 0+ │
├────────────────────────────────────────── ─────┤
│ອ່ານທົ່ວໂລກ │ 0+ │
├────────────────────────────────────────── ─────┤
│ອ່ານໃໝ່ທົ່ວໂລກ │ 0+ │
├────────────────────────────────────────── ─────┤
│ລະເລີຍ │ 0+ (ໂດຍບໍ່ມີການໂຕ້ຖຽງທຸກຢ່າງ │
│ │ ຖືກລະເລີຍ) │
├────────────────────────────────────────── ─────┤
│ເປີດໃຊ້ │ 1+ │
├────────────────────────────────────────── ─────┤
│ │ 1+ │ ເທົ່ານັ້ນ
└────────────────────────────────────────── ─────┘
ທາງເລືອກທີ່ບໍ່ມີການໂຕ້ຖຽງສາມາດຖືກນໍາຫນ້າດ້ວຍ no ປ່ຽນຄວາມໝາຍຂອງເຂົາເຈົ້າ. ຕົວຢ່າງ
--luacheck: no ບໍ່ໃຊ້ ໂຕ້ຖຽງ ປິດການເຕືອນການໂຕ້ຖຽງທີ່ບໍ່ໄດ້ໃຊ້.
ສ່ວນຫນຶ່ງຂອງໄຟລ໌ທີ່ໄດ້ຮັບຜົນກະທົບຈາກທາງເລືອກ inline ແມ່ນຂຶ້ນກັບບ່ອນທີ່ມັນຖືກວາງໄວ້. ຖ້າມີ
ລະຫັດຢູ່ໃນເສັ້ນທີ່ມີທາງເລືອກ, ພຽງແຕ່ເສັ້ນນັ້ນໄດ້ຮັບຜົນກະທົບ; ຖ້າບໍ່ດັ່ງນັ້ນ, ທຸກສິ່ງທຸກຢ່າງຈົນກ່ວາ
ໃນຕອນທ້າຍຂອງການປິດປະຈຸບັນແມ່ນ. ໂດຍສະເພາະ, ທາງເລືອກໃນແຖວຢູ່ເທິງສຸດຂອງໄຟລ໌
ມີຜົນກະທົບທັງຫມົດຂອງມັນ:
-- luacheck: globals g1 g2, ignore foo
local foo = g1(g2) -- ບໍ່ມີການເຕືອນໄພອອກມາ.
-- ຟັງຊັນທີ່ບໍ່ໄດ້ໃຊ້ຕໍ່ໄປນີ້ບໍ່ໄດ້ຖືກລາຍງານ.
ຟັງຊັນທ້ອງຖິ່ນ f() -- luacheck: ignore
-- luacheck: ທົ່ວໂລກ g3
g3() -- ບໍ່ມີຄໍາເຕືອນ.
ໃນຕອນທ້າຍ
g3() -- ຄໍາເຕືອນຖືກປ່ອຍອອກມາເປັນທາງເລືອກໃນແຖວທີ່ກໍານົດ g3 ພຽງແຕ່ຫນ້າທີ່ໄດ້ຮັບຜົນກະທົບ f.
ສໍາລັບການຄວບຄຸມທີ່ລະອຽດອ່ອນໃນໄລຍະການເບິ່ງເຫັນທາງເລືອກໃນແຖວ luacheck: ການຊຸກຍູ້ ແລະ luacheck:
ບໍ່ ທິດທາງ:
-- luacheck: push ignore foo
foo() -- ບໍ່ມີການເຕືອນ.
-- luacheck: ປ໊ອບ
foo() -- ການເຕືອນໄພຖືກປ່ອຍອອກມາ.
ທາງເລືອກໃນແຖວສາມາດຖືກປິດໃຊ້ງານຢ່າງສົມບູນໂດຍໃຊ້ -- ບໍ່ມີໃນແຖວ ທາງເລືອກ CLI ຫຼື inline config
ທາງເລືອກ.
LUACHECK ແບບ ຈຳ ລອງ
ການນໍາໃຊ້ ທ້ອງຖິ່ນ luacheck = ຕ້ອງການ "luacheck" ນໍາເຂົ້າ luacheck ໂມດູນ. ມັນປະກອບດ້ວຍ
ຫນ້າທີ່ດັ່ງຕໍ່ໄປນີ້:
· luacheck.get_report(ແຫຼ່ງ): ສະຕຣິງແຫຼ່ງທີ່ມາ, ສົ່ງຄືນຂໍ້ມູນການວິເຄາະ (ຕາຕະລາງ).
· luacheck.process_reports(ລາຍງານ, ທາງເລືອກ): ຂະບວນການ array ຂອງບົດລາຍງານການວິເຄາະແລະ
ນຳໃຊ້ທາງເລືອກ. ບົດລາຍງານ[i] ການນໍາໃຊ້ ທາງເລືອກໃນການ, ທາງເລືອກ[i], ຕົວເລືອກ[i][1], ຕົວເລືອກ[i][2], ...
ເປັນທາງເລືອກ, overriding ເຊິ່ງກັນແລະກັນໃນຄໍາສັ່ງນັ້ນ. ຕາຕະລາງທາງເລືອກແມ່ນຕາຕະລາງທີ່ມີທົ່ງນາ
ຄ້າຍຄືກັນກັບຕົວເລືອກ config; ເບິ່ງທາງເລືອກ. ບົດລາຍງານການວິເຄາະກັບພາກສະຫນາມ ຄວາມຕາຍ ຖືກລະເລີຍ.
process_reports ສົ່ງຄືນບົດລາຍງານສຸດທ້າຍ, ເບິ່ງ ບົດລາຍງານ ຮູບແບບ.
· luacheck.check_strings(ແຫຼ່ງຂໍ້ມູນ, ທາງເລືອກ): ກວດສອບ array ຂອງແຫຼ່ງຂໍ້ມູນໂດຍໃຊ້ຕົວເລືອກ, ຜົນຕອບແທນ
ບົດລາຍງານສຸດທ້າຍ. ຕາຕະລາງທີ່ມີພາກສະຫນາມ ຄວາມຕາຍ ພາຍໃນ ແຫຼ່ງຂໍ້ມູນ array ຖືກລະເລີຍ.
· luacheck.check_files(ໄຟລ໌, ທາງເລືອກ): ກວດສອບ array ຂອງໄຟລ໌ໂດຍໃຊ້ຕົວເລືອກ, ສົ່ງຄືນສຸດທ້າຍ
ລາຍງານ. ມືຈັບໄຟລ໌ເປີດສາມາດຜ່ານແທນທີ່ຈະເປັນຊື່ໄຟລ໌, ໃນກໍລະນີນີ້ພວກມັນຈະເປັນ
ອ່ານຈົນກ່ວາ EOF ແລະປິດ.
· luacheck.get_message(ບັນຫາ): ສົ່ງຄືນຂໍ້ຄວາມສະຕຣິງສຳລັບບັນຫາ, ເບິ່ງ ບົດລາຍງານ ຮູບແບບ.
luacheck._VERSION ປະກອບມີສະບັບ Luacheck ເປັນສະຕຣິງໃນ MAJOR.MINOR.PATCH ຮູບແບບ.
ການນໍາໃຊ້ luacheck ເປັນຫນ້າທີ່ທຽບເທົ່າກັບການໂທ luacheck.check_files.
ບົດລາຍງານ ຮູບແບບ
ບົດລາຍງານສຸດທ້າຍແມ່ນ array ຂອງບົດລາຍງານເອກະສານບວກກັບຊ່ອງຂໍ້ມູນ ຄໍາເຕືອນ, ຄວາມຜິດພາດ ແລະ ຄວາມຕາຍ
ປະກອບດ້ວຍຈໍານວນການເຕືອນໄພທັງຫມົດ, ຄວາມຜິດພາດແລະຄວາມຜິດພາດທີ່ຮ້າຍແຮງ, ທີ່ສອດຄ້ອງກັນ.
ບົດລາຍງານໄຟລ໌ແມ່ນ array ຂອງບັນຫາ (ຄໍາເຕືອນຫຼືຄວາມຜິດພາດ). ຖ້າຄວາມຜິດພາດຮ້າຍແຮງເກີດຂຶ້ນໃນຂະນະທີ່
ການກວດສອບໄຟລ໌, ບົດລາຍງານຂອງມັນຈະມີ ຄວາມຕາຍ ຊ່ອງຂໍ້ມູນທີ່ມີປະເພດຂໍ້ຜິດພາດ.
ບັນຫາແມ່ນຕາຕະລາງທີ່ມີພາກສະຫນາມ ລະຫັດ ຊີ້ບອກປະເພດຂອງມັນ (ເບິ່ງ ຄໍາເຕືອນ), ແລະທົ່ງນາ ອອນໄລນ໌,
ຖັນ ແລະ end_column ຊີ້ໄປເຖິງແຫຼ່ງຂອງການເຕືອນໄພ. ຊື່ ຊ່ອງຂໍ້ມູນອາດມີຊື່
ຂອງຕົວແປທີ່ກ່ຽວຂ້ອງ. ບັນຫາຂອງບາງປະເພດຍັງສາມາດມີຊ່ອງຂໍ້ມູນເພີ່ມເຕີມ:
┌───────┬──────────────────────────────
│ລະຫັດ │ ຊ່ອງຂໍ້ມູນເພີ່ມເຕີມ │
├─────────────────────────────────────────
│011 │ msg ຊ່ອງຂໍ້ມູນມີ syntax error │
│ │ ຂໍ້ຄວາມ. │
├─────────────────────────────────────────
│111 │ ໂມດູນ ພາກສະຫນາມຊີ້ໃຫ້ເຫັນວ່າ │
│ │ ການມອບໝາຍແມ່ນໃຫ້ກັບໂມດູນທີ່ບໍ່ແມ່ນໂມດູນ │
│ │ ຕົວແປທົ່ວໂລກ. │
├─────────────────────────────────────────
│211 │ ມ່ວນ ພາກສະຫນາມຊີ້ບອກວ່າບໍ່ໄດ້ໃຊ້ │
│ │ ຕົວແປເປັນຟັງຊັນ. │
├─────────────────────────────────────────
│4.. │ prev_line ແລະ prev_column ທົ່ງນາ │
│ │ ປະກອບມີສະຖານທີ່ຂອງ │
│ │ ການຂຽນທັບຄຳນິຍາມ. │
└──────────────────────────────────────────────┘
ຊ່ອງຂໍ້ມູນອື່ນໆອາດຈະມີຢູ່ສໍາລັບເຫດຜົນພາຍໃນ.
ນີ້ແມ່ນເອກະສານສໍາລັບສະບັບ 0.13.0 ຂອງ Luacheck, linter ສໍາລັບ Lua.
ໃຊ້ luacheck ອອນໄລນ໌ໂດຍໃຊ້ບໍລິການ onworks.net