Ito ang command luacheck na maaaring patakbuhin sa OnWorks na libreng hosting provider gamit ang isa sa aming maramihang libreng online na workstation gaya ng Ubuntu Online, Fedora Online, Windows online emulator o MAC OS online emulator
PROGRAMA:
NAME
luacheck - luacheck Documentation
Nilalaman:
LIST OF MGA BABAE
Ang mga babala na ginawa ng Luacheck ay ikinategorya gamit ang tatlong-digit na mga code ng babala. Babala
maaaring ipakita ang mga code sa CLI output gamit ang --mga code CLI opsyon o mga code opsyon sa config.
Ang mga error ay mayroon ding mga code na nagsisimula sa zero.
┌─────┬────────────────────────‐───‐‐─
│Code │ Paglalarawan │
.
│011 │ Isang syntax error. │
.
│021 │ Isang di-wastong inline na opsyon. │
.
│022 │ Isang upaired inline push │
│ │ direktiba. │
.
│023 │ Isang upaired inline pop directive. │
.
│111 │ Pagtatakda ng hindi natukoy na global │
│ │ variable. │
.
│112 │ Pag-mutate ng hindi natukoy na pandaigdigang │
│ │ variable. │
.
│113 │ Pag-access sa isang hindi natukoy na pandaigdigang │
│ │ variable. │
.
│121 │ Pagtatakda ng read-only global │
│ │ variable. │
.
│122 │ Pag-mute ng read-only na pandaigdigan │
│ │ variable. │
.
│131 │ Hindi nagamit implicitly na tinukoy global │
│ │ variable. │
.
│211 │ Hindi nagamit na lokal na variable. │
.
│212 │ Hindi nagamit na argumento. │
.
│213 │ Hindi nagamit na loop variable. │
.
│221 │ Naa-access ang lokal na variable ngunit │
│ │ hindi kailanman itinakda. │
.
│231 │ Nakatakda ang lokal na variable ngunit hindi kailanman │
│ │ na-access. │
.
│232 │ Nakatakda ang isang argumento ngunit hindi kailanman │
│ │ na-access. │
.
│233 │ Ang variable ng loop ay nakatakda ngunit hindi kailanman │
│ │ na-access. │
.
│311 │ Halaga na itinalaga sa isang lokal │
│ │ variable ay hindi ginagamit. │
.
│312 │ Ang halaga ng isang argumento ay hindi ginagamit. │
.
│313 │ Ang value ng isang loop variable ay │
│ │ hindi nagamit. │
.
│321 │ Pag-access sa hindi nasimulang lokal │
│ │ variable. │
.
│411 │ Muling pagtukoy sa isang lokal na variable. │
.
│412 │ Muling pagtukoy sa isang argumento. │
.
│413 │ Muling pagtukoy sa isang loop variable. │
.
│421 │ Pag-shadow sa isang lokal na variable. │
.
│422 │ Pag-shadow ng argumento. │
.
│423 │ Pag-shadow ng loop variable. │
.
│431 │ Pag-shadow ng upvalue. │
.
│432 │ Pag-shadow ng upvalue na argumento. │
.
│433 │ Pag-shadow ng upvalue loop │
│ │ variable. │
.
│511 │ Hindi maabot na code. │
.
│512 │ Ang loop ay maaaring isagawa nang hindi hihigit sa │
│ │ isang beses. │
.
│521 │ Hindi nagamit na label. │
.
│531 │ Kaliwang bahagi ng isang assignment │
│ │ ay masyadong maikli. │
.
│532 │ Kaliwang bahagi ng isang assignment │
│ │ ay masyadong mahaba. │
.
│541 │ Isang walang laman do dulo harangan. │
.
│542 │ Isang walang laman if sangay. │
.
│551 │ Isang walang laman na pahayag. │
.
Global mga variable
Para sa bawat file, bubuo si Luacheck ng listahan ng mga tinukoy na global na magagamit doon. Bilang default
tanging mga global mula sa Lua standard library ang tinukoy; maaaring idagdag ang mga custom na global gamit ang
--mga pandaigdigan CLI opsyon o globals config na opsyon, at maaaring maging bersyon ng karaniwang library
pinili gamit --std CLI opsyon o std opsyon sa config. Kapag naitakda ang isang hindi natukoy na pandaigdigan,
na-mutate o na-access, naglalabas ng babala si Luacheck.
Basahin lamang globals
Bilang default, lahat ng karaniwang global maliban sa _G at pakete ay minarkahan bilang read-only, upang
ang pagtatakda o pag-mutate sa mga ito ay nagbibigay ng babala. Maaaring idagdag ang mga custom na read-only na global gamit ang
--read-globals CLI opsyon o read_globals opsyon sa config.
Implicitly tinukoy globals
Maaaring i-configure ang Luacheck upang isaalang-alang ang mga global na itinalaga sa ilalim ng ilang kundisyon
implicitly na tinukoy. Kailan -d/--allow_defined CLI opsyon o allow_defined ang pagpipilian sa config ay
ginamit, ang lahat ng mga takdang-aralin sa mga global ay tumutukoy sa kanila; kailan -t/--allow_defined_top CLI opsyon o
allow_defined_top config option ang ginagamit, mga assignment sa globals sa top level na function
scope (kilala rin bilang pangunahing chunk) tukuyin ang mga ito. Ang isang babala ay ginawa kapag ang isang implicitly
ang tinukoy na global ay hindi naa-access kahit saan.
Module
Maaaring markahan ang mga file bilang mga module na gumagamit -m/--modyul CLI opsyon o module config opsyon sa
gayahin ang mga semantika ng hindi na ginagamit module function. Ang mga pandaigdig ay tahasang tinukoy sa loob ng a
Ang module ay itinuturing na bahagi ng interface nito, hindi nakikita sa labas at hindi iniuulat
bilang hindi nagamit. Hindi pinapayagan ang mga assignment sa ibang globals, kahit na sa mga tinukoy.
Hindi ginagamit mga variable at halaga
Ang Luacheck ay bumubuo ng mga babala para sa lahat ng hindi nagamit na mga lokal na variable maliban sa isang pinangalanan _. ito aussi
nakakakita ng mga variable na nakatakda ngunit hindi kailanman na-access o na-access ngunit hindi nakatakda.
Hindi ginagamit halaga at hindi pinag-iisa mga variable
Para sa bawat value na itinalaga sa isang lokal na variable, kino-compute ng Luacheck ang hanay ng mga expression kung saan ito
pwedeng gamitin. Ang mga babala ay ginawa para sa mga hindi nagamit na halaga (kapag ang isang halaga ay hindi magagamit
kahit saan) at para sa pag-access ng mga hindi nasimulang variable (kapag walang mga halaga ang makakarating sa isang
pagpapahayag). Hal sa sumusunod na snippet value na itinalaga sa foo sa linya 1 ay hindi ginagamit, at
nagbabago bar ay uninitialized sa linya 9:
lokal na foo = expr1()
lokal na bar
kung kondisyon() kung gayon
foo = expr2()
bar = expr3()
iba
foo = expr4()
print(bar)
dulo
bumalik foo, bar
Pangalawa halaga at mga variable
Ang hindi nagamit na value na itinalaga sa isang lokal na variable ay pangalawa kung ang pinagmulan nito ay ang huling item sa
ang RHS ng pagtatalaga, at isa pang halaga mula sa item na iyon ang ginagamit. Mga pangalawang halaga
karaniwang lumilitaw kapag ang resulta ng isang function na tawag ay inilagay sa mga lokal, at ilan lamang sa kanila
ay ginagamit sa ibang pagkakataon. Halimbawa, dito itinalaga ang halaga sa b ay pangalawa, ang halaga ay itinalaga sa c is
ginamit, at halagang itinalaga sa a ay hindi ginagamit:
lokal a, b, c = f(), g()
bumalik c
Ang isang variable ay pangalawa kung ang lahat ng mga halaga na itinalaga dito ay pangalawa. Sa snippet sa itaas,
b ay pangalawang variable.
Ang mga babalang nauugnay sa hindi nagamit na mga pangalawang halaga at variable ay maaaring alisin gamit
-s/--no-unused-secondary CLI opsyon o unused_secondaries opsyon sa config.
Shadowing deklarasyon
Nakita ng Luacheck ang mga deklarasyon ng mga lokal na variable na sumasalamin sa mga nakaraang deklarasyon, maliban kung
pinangalanan ang variable _. Kung ang nakaraang deklarasyon ay nasa parehong saklaw ng bago,
ito ay tinatawag na muling pagtukoy.
Tandaan na ito ay hindi kinakailangan upang tukuyin ang isang bagong lokal na variable kapag nag-overwrite ng isang argumento:
lokal na function f(x)
lokal na x = x o "default" -- masama
dulo
lokal na function f(x)
x = x o "default" -- mabuti
dulo
Kontrolin pag-agos at data pag-agos isyu
Natukoy ang sumusunod na mga isyu sa daloy ng kontrol at daloy ng data:
· Hindi maabot na code at mga loop na maaaring isagawa nang hindi hihigit sa isang beses (hal. dahil sa isang
walang kondisyong pahinga);
· Hindi nagamit na mga label;
· Hindi balanseng mga pagtatalaga;
· Walang laman na mga bloke.
· Mga walang laman na pahayag (mga tuldok-kuwit na walang naunang mga pahayag).
COMMAND LINE Interface
luacheck tumatanggap ang program ng mga file, direktoryo at rockspecs bilang mga argumento.
· Binigyan ng file, luacheck susuriin ito.
· Ibinigay -, luacheck susuriin ang stdin.
· Binigyan ng direktoryo, luacheck susuriin ang lahat ng mga file sa loob nito, pipili lamang ng mga file na may
.lua extension maliban kung --include-files ginagamit ang opsyon. Ang tampok na ito ay nangangailangan
LuaFileSystem (awtomatikong na-install kung ginamit ang LuaRocks upang i-install ang Luacheck).
· Binigyan ng rockspec (isang file na may .rockspec extension), luacheck susuriin ang lahat ng mga file na may
.lua extension na binanggit sa rockspec in build.install.lua, build.install.bin at
bumuo.mga module mga talahanayan.
Ang output ng luacheck binubuo ng magkakahiwalay na ulat para sa bawat naka-check na file at nagtatapos sa a
buod:
$ luacheck src
Sinusuri ang src/bad_code.lua 5 babala
src/bad_code.lua:3:16: hindi nagamit na variable helper
src/bad_code.lua:3:23: hindi nagamit na variable na haba ng argumento
src/bad_code.lua:7:10: pagtatakda ng hindi pamantayang global variable embrace
src/bad_code.lua:8:10: ang variable opt ay dating tinukoy bilang argumento sa linya 7
src/bad_code.lua:9:11: pag-access sa hindi natukoy na variable na hepler
Sinusuri ang src/good_code.lua OK
Sinusuri ang src/python_code.lua 1 error
src/python_code.lua:1:6: inaasahang '=' malapit sa '__hinaharap__'
Sinusuri ang src/unused_code.lua 9 na babala
src/unused_code.lua:3:18: hindi nagamit na argumento baz
src/unused_code.lua:4:8: hindi nagamit na loop variable i
src/unused_code.lua:5:13: hindi nagamit na variable q
src/unused_code.lua:7:11: hindi nagamit na loop variable a
src/unused_code.lua:7:14: hindi nagamit na loop variable b
src/unused_code.lua:7:17: hindi nagamit na loop variable c
src/unused_code.lua:13:7: hindi ginagamit ang value na itinalaga sa variable x
src/unused_code.lua:14:1: hindi ginagamit ang value na itinalaga sa variable x
src/unused_code.lua:22:1: hindi ginagamit ang value na itinalaga sa variable na z
Kabuuan: 14 na babala / 1 error sa 4 na file
luacheck lalabas na may 0 kung walang mga babala o error na nangyari at may positibong numero
kung hindi man.
Utos linya pagpipilian
Ang mga maiikling opsyon na hindi kumukuha ng argumento ay maaaring pagsamahin sa isa, nang sa gayon -qqu is
katumbas ng -q -q -u. Para sa mahabang mga pagpipilian, pareho --pagpipilian halaga or --option=value ay maaaring maging
ginagamit.
Ang mga opsyon na kumukuha ng ilang argumento ay maaaring gamitin nang maraming beses; --Huwag pansinin foo --Huwag pansinin bar is
katumbas ng --Huwag pansinin foo bar.
Tandaan na ang mga opsyon na maaaring tumagal ng ilang argumento, gaya ng --mga pandaigdigan, hindi dapat gamitin
kaagad bago ang positional arguments; binigay --mga pandaigdigan foo bar file.lua, luacheck habilin
isaalang-alang ang lahat foo, bar at file.lua global at pagkatapos ay panic dahil walang natitirang mga pangalan ng file.
┌─────────────────────────────────┬─────────────── ───────────────────┐
│Pagpipilian │ Kahulugan │
├─────────────────────────────────┼─────────────── ───────────────────┤
│-g | --walang-global │ I-filter ang mga babala na nauugnay sa │
│ │ mga pandaigdigang variable. │
├─────────────────────────────────┼─────────────── ───────────────────┤
│-u | --walang-ginagamit │ I-filter ang mga babala na nauugnay sa │
│ │ hindi nagamit na mga variable at value. │
├─────────────────────────────────┼─────────────── ───────────────────┤
│-r | --no-redefined │ I-filter ang mga babala na nauugnay sa │
│ │ muling tinukoy ang mga variable. │
├─────────────────────────────────┼─────────────── ───────────────────┤
│-a | --no-unused-args │ I-filter ang mga babala na nauugnay sa │
│ │ hindi nagamit na argumento at loop │
│ │ mga variable. │
├─────────────────────────────────┼─────────────── ───────────────────┤
│-s | --no-unused-secondary │ I-filter ang mga babala na nauugnay sa │
│ │ hindi nagamit na mga variable na pinagsama-sama │
│ │ kasama ang mga gamit na. │
│ │ │
│ │ Tingnan ang pangalawang halaga at variable │
├─────────────────────────────────┼─────────────── ───────────────────┤
│--wala-sarili │ I-filter ang mga babala na nauugnay sa │
│ │ implicit sarili argumento. │
└─────────────────────────────────┴─────────────── ───────────────────┘
│--std │ Magtakda ng mga karaniwang global. maaari │
│ │ maging isa sa: │
│ │ │
│ │ · _G - mga global ng Lua │
│ │ interpreter luacheck │
│ │ tumatakbo sa (default); │
│ │ │
│ │ · lua51 - globals ng Lua │
│ │ 5.1; │
│ │ │
│ │ · lua52 - globals ng Lua │
│ │ 5.2; │
│ │ │
│ │ · lua52c - globals ng Lua │
│ │ 5.2 pinagsama-sama sa │
│ │ LUA_COMPAT_ALL; │
│ │ │
│ │ · lua53 - globals ng Lua │
│ │ 5.3; │
│ │ │
│ │ · lua53c - globals ng Lua │
│ │ 5.3 pinagsama-sama sa │
│ │ LUA_COMPAT_5_2; │
│ │ │
│ │ · luajit - globals ng │
│ │ LuaJIT 2.0; │
│ │ │
│ │ · ngx_lua - globals ng │
│ │ Openresty │
│ │ lua-nginx-module may │
│ │ LuaJIT 2.0; │
│ │ │
│ │ · minuto - intersection ng │
│ │ globals ng Lua 5.1, Lua │
│ │ 5.2 at LuaJIT 2.0; │
│ │ │
│ │ · max - unyon ng mga global │
│ │ ng Lua 5.1, Lua 5.2 at │
│ │ LuaJIT 2.0; │
│ │ │
│ │ · busted - idinagdag ang mga global │
│ │ ng Busted 2.0; │
│ │ │
│ │ · wala - walang pamantayan │
│ │ mga pandaigdigan. │
│ │ │
│ │ Tingnan Sets of pamantayan │
│ │ globals │
├─────────────────────────────────┼─────────────── ───────────────────┤
│--mga pandaigdigan [ ] ... │ Magdagdag ng mga custom na global sa ibabaw ng │
│ │ mga karaniwan. │
├─────────────────────────────────┼─────────────── ───────────────────┤
│--read-globals [ ] ... │ Magdagdag ng mga read-only na global. │
├─────────────────────────────────┼─────────────── ───────────────────┤
│--bagong-global [ ] ... │ Magtakda ng mga custom na global. Tinatanggal ang │
│ │ naidagdag na dati ang mga custom na global. │
├─────────────────────────────────┼─────────────── ───────────────────┤
│--new-read-globals [ ] │ Magtakda ng mga read-only na global. Tinatanggal ang │
│... │ read-only globals idinagdag │
│ │ dati. │
├─────────────────────────────────┼─────────────── ───────────────────┤
│-c | --compat │ Katumbas ng --std max. │
└─────────────────────────────────┴─────────────── ───────────────────┘
│-d | --allow-defined │ Payagan ang pagtukoy sa mga global │
│ │ nang tahasan sa pamamagitan ng pagtatakda ng mga ito. │
│ │ │
│ │ Tingnan ang implicitlydefinedglobals │
├─────────────────────────────────┼─────────────── ───────────────────┤
│-t | --allow-defined-top │ Payagan ang pagtukoy sa mga global │
│ │ nang tahasan sa pamamagitan ng pagtatakda ng mga ito sa │
│ │ ang pinakamataas na antas ng saklaw. │
│ │ │
│ │ Tingnan ang implicitlydefinedglobals │
├─────────────────────────────────┼─────────────── ───────────────────┤
│-m | --modyul │ Limitahan ang visibility ng implicitly │
│ │ tinukoy ang mga global sa kanilang mga file. │
│ │ │
│ │ Tingnan ang mga module │
├─────────────────────────────────┼─────────────── ───────────────────┤
│--Huwag pansinin | -i [ ] │ I-filter ang mga babalang tumutugma │
│... │ mga pattern. │
├─────────────────────────────────┼─────────────── ───────────────────┤
│--paganahin | -e [ ] │ Huwag salain ang mga babala │
│... │ pagtutugma ng mga pattern. │
├─────────────────────────────────┼─────────────── ───────────────────┤
│--lamang | -o [ ] ... │ I-filter ang mga babala na hindi tumutugma │
│ │ mga pattern. │
├─────────────────────────────────┼─────────────── ───────────────────┤
│--walang-inline │ Huwag paganahin ang mga inline na opsyon. │
├─────────────────────────────────┼─────────────── ───────────────────┤
│--config │ Path sa custom na configuration │
│ │ file (default: .luacheckrc). │
├─────────────────────────────────┼─────────────── ───────────────────┤
│--walang-config │ Huwag maghanap ng custom │
│ │ configuration file. │
├─────────────────────────────────┼─────────────── ───────────────────┤
│--filename │ Gumamit ng ibang filename sa output, │
│ │ para sa pagpili ng configuration │
│ │ override at para sa file │
│ │ pagsala. │
├─────────────────────────────────┼─────────────── ───────────────────┤
│--exclude-files [ ] │ Huwag suriin ang mga file na tumutugma │
│... │ mga globbing pattern na ito. │
│ │ Recursive glob tulad ng **/*.lua │
│ │ ay suportado. │
├─────────────────────────────────┼─────────────── ───────────────────┤
│--include-files [ ] │ Huwag suriin ang mga file na hindi tumutugma │
│... │ mga globbing pattern na ito. │
├─────────────────────────────────┼─────────────── ───────────────────┤
│--cache [ ] │ Path sa cache file. (default: │
│ │ .luacheckcache). Tingnan Caching │
├─────────────────────────────────┼─────────────── ───────────────────┤
│--walang-cache │ Huwag gumamit ng cache. │
├─────────────────────────────────┼─────────────── ───────────────────┤
│-j | --mga trabaho │ Suriin magkatulad na mga file. │
│ │ Nangangailangan LuaLanes. │
└─────────────────────────────────┴─────────────── ───────────────────┘
│--formatter │ Gumamit ng custom na formatter. │
│ │ dapat ay isang module │
│ │ pangalan o isa sa: │
│ │ │
│ │ · Tapikin - Subukan ang Kahit ano │
│ │ Protocol formatter; │
│ │ │
│ │ · JUnit - JUnit XML │
│ │ taga-format; │
│ │ │
│ │ · payak - simple │
│ │ babala-bawat-linya │
│ │ taga-format; │
│ │ │
│ │ · default - pamantayan │
│ │ formatter. │
├─────────────────────────────────┼─────────────── ───────────────────┤
│-q | --tahimik │ Pigilan ang output ng ulat para sa mga file │
│ │ nang walang babala. │
│ │ │
│ │ · -qq - Pigilan ang output │
│ │ ng mga babala. │
│ │ │
│ │ · -qqq - Tanging output │
│ │ buod. │
├─────────────────────────────────┼─────────────── ───────────────────┤
│--mga code │ Ipakita ang mga code ng babala. │
├─────────────────────────────────┼─────────────── ───────────────────┤
│--mga saklaw │ Ipakita ang mga hanay ng mga column na nauugnay │
│ │ sa mga babala. │
├─────────────────────────────────┼─────────────── ───────────────────┤
│--walang kulay │ Huwag kulayan ang output. │
├─────────────────────────────────┼─────────────── ───────────────────┤
│-v | --bersyon │ Ipakita ang bersyon ng Luacheck at ang │ nito
│ │ dependencies at exit. │
├─────────────────────────────────┼─────────────── ───────────────────┤
│-h | - Tumulong │ Magpakita ng tulong at lumabas. │
└─────────────────────────────────┴─────────────── ───────────────────┘
Pattern
Mga pagpipilian sa CLI --Huwag pansinin, --paganahin at --lamang at ang kaukulang mga opsyon sa config ay nagpapahintulot sa pag-filter
mga babala gamit ang pagtutugma ng pattern sa mga code ng babala, variable na pangalan o pareho. Kung isang pattern
naglalaman ng slash, ang bahagi bago ang slash ay tumutugma sa code ng babala at ang bahagi pagkatapos ng mga tugma
variable na pangalan. Kung hindi, kung ang isang pattern ay naglalaman ng isang titik o underscore, tumutugma ito
variable na pangalan. Kung hindi, tumutugma ito sa code ng babala. Hal:
.
│Pattern │ Pagtutugma ng mga babala │
.
│4.2 │ Naglalaman ng mga deklarasyon ng │
│ │ argumento o muling pagtukoy sa kanila. │
.
│.*_ │ Mga babala na nauugnay sa mga variable │
│ │ kasama _ panlapi. │
.
│4.2/.*_ │ Pag-shadow ng mga deklarasyon ng │
│ │ mga argumento na may _ panlapi o │
│ │ muling pagtukoy sa kanila. │
.
Maliban kung naka-angkla na, ang mga pattern na tumutugma sa mga variable na pangalan ay naka-angkla sa magkabilang panig at
ang mga pattern na tumutugma sa mga code ng babala ay naka-angkla sa kanilang mga simula. Ito ay nagpapahintulot sa isa na
salain ang mga babala ayon sa kategorya (hal --lamang 1 tumutuon luacheck sa mga babala na may kaugnayan sa buong mundo).
Sets of pamantayan globals
Opsyon sa CLI --stds nagbibigay-daan sa pagsasama-sama ng mga built-in na set na inilarawan sa itaas gamit ang +. Halimbawa,
--std max ay katumbas ng --std=lua51+lua52+lua53. Ang nangungunang plus sign ay nagdaragdag ng mga bagong set sa
default na isa sa halip na palitan ito. Halimbawa, --std +busted ay angkop para sa pagsusuri
pagsubok ng mga file na gumagamit busted balangkas ng pagsubok. Ang mga custom na hanay ng mga global ay maaaring tukuyin ng
mutating global variable stds sa config. Tingnan ang custom_stds
Mga formatter
Opsyon sa CLI --formatter nagbibigay-daan sa pagpili ng custom na formatter para sa luacheck output. Isang kaugalian
formatter ay isang Lua module na nagbabalik ng isang function na may tatlong argumento: ulat bilang ibinalik ni
luacheck module (tingnan ang ulat), hanay ng mga pangalan ng file at talahanayan ng mga opsyon. Naglalaman ang mga opsyon
mga halagang itinalaga sa tahimik, kulay, limitasyon, mga code, mga saklaw at taga-format mga opsyon sa CLI o
config. Dapat magbalik ng string ang function ng formatter.
Caching
Kung magagamit ang LuaFileSystem, maaaring i-cache ng Luacheck ang mga resulta ng pagsusuri sa mga file. Sa kasunod
mga tseke, tanging ang mga file na nagbago mula noong huling pagsusuri ang muling susuriin, at pagpapabuti
makabuluhang tumakbo ang oras. Ang pagpapalit ng mga opsyon (hal. pagtukoy ng mga karagdagang global) ay hindi
invalidate ang cache. Maaaring paganahin ang pag-cache sa pamamagitan ng paggamit --cache pagpipilian o cache config
opsyon. Gamit --cache nang walang argumento o setting cache config opsyon sa totoo set
.luacheckcache bilang cache file. Tandaan na --cache dapat gamitin sa bawat oras luacheck is
tumakbo, hindi sa unang pagtakbo lamang.
Matatag interface para editor plugin at mga kasangkapan
Ang interface ng command-line ng Luacheck ay maaaring magbago sa pagitan ng mga menor de edad na paglabas. Simula sa 0.11.0
bersyon, ang sumusunod na interface ay garantisadong hindi bababa sa 1.0.0 na bersyon, at dapat ay
ginagamit ng mga tool gamit ang output ng Luacheck, hal. mga plugin ng editor.
· Dapat magsimula ang Luacheck mula sa direktoryo na naglalaman ng naka-check na file.
· Maaaring maipasa ang file sa pamamagitan ng stdin gamit - bilang argumento o paggamit ng pansamantalang file. totoo
dapat ipasa ang filename gamit ang --filename pagpipilian.
· Dapat gamitin ang plain formatter. Naglalabas ito ng isang isyu (babala o error) bawat linya.
· Upang makakuha ng tumpak na lokasyon ng error, --mga saklaw maaaring gamitin ang opsyon. Ang bawat linya ay nagsisimula sa tunay
filename (ipinasa gamit ang --filename), sinundan ng : : - :,
saan ay numero ng linya kung saan nangyari ang isyu at - is
kasama ang hanay ng mga column ng token na nauugnay sa isyu. Ang pagnunumero ay nagsisimula sa 1. Kung
--mga saklaw ay hindi ginagamit, ang dulong hanay at gitling ay hindi naka-print.
· Upang makakuha ng mga code ng babala at error, --mga code maaaring gamitin ang opsyon. Para sa bawat linya, substring
sa pagitan ng mga panaklong ay naglalaman ng tatlong digit na code ng isyu, na may prefix na E para sa mga pagkakamali at W
para sa mga babala. Ang kakulangan ng naturang substring ay nagpapahiwatig ng isang nakamamatay na error (hal. I/O error).
· Ang natitirang bahagi ng linya ay mensahe ng babala.
Kung nais ang pagiging tugma sa mas lumang bersyon ng Luacheck, ang output ng luacheck - Tumulong ay maaaring maging
ginamit upang makuha ang bersyon nito. Kung naglalaman ito ng string 0. ., Kung saan ay nasa
hindi bababa sa 11 at magtagpi ay anumang numero, ang interface na inilarawan sa itaas ay dapat gamitin.
Configuration FILE
luacheck sinusubukang i-load ang configuration mula sa .luacheckrc file sa kasalukuyang direktoryo. Kung
hindi natagpuan, hahanapin ito sa direktoryo ng magulang at iba pa, hanggang dito
umabot sa ugat ng file system. Path sa config ay maaaring itakda gamit --config opsyon, kung saan
ito ay gagamitin sa panahon ng recursive loading. Maaaring i-disable ang pag-load ng config gamit --walang-config
bandila.
Ang Config ay isang Lua script lamang na pinaandar ni luacheck. Maaari itong magtakda ng iba't ibang opsyon sa pamamagitan ng
pagtatalaga sa mga global o sa pamamagitan ng pagbabalik ng talahanayan na may mga pangalan ng opsyon bilang mga susi.
config pagpipilian
┌───────────────────┬──────────────────────────┬── ───────────────────┐
│Pagpipilian │ Uri │ Default na halaga │
├───────────────────┼──────────────────────────┼── ───────────────────┤
│kulay │ Boolean │ totoo │
├───────────────────┼──────────────────────────┼── ───────────────────┤
│mga code │ Boolean │ hindi totoo │
└───────────────────┴──────────────────────────┴── ───────────────────┘
│taga-format │ String o function │ "default" │
├───────────────────┼──────────────────────────┼── ───────────────────┤
│cache │ Boolean o string │ hindi totoo │
├───────────────────┼──────────────────────────┼── ───────────────────┤
│trabaho │ Positibong integer │ 1 │
├───────────────────┼──────────────────────────┼── ───────────────────┤
│exclude_files │ Array ng mga string │ {} │
├───────────────────┼──────────────────────────┼── ───────────────────┤
│include_files │ Array ng mga string │ (Isama ang lahat ng file) │
├───────────────────┼──────────────────────────┼── ───────────────────┤
│global │ Boolean │ totoo │
├───────────────────┼──────────────────────────┼── ───────────────────┤
│hindi ginagamit │ Boolean │ totoo │
├───────────────────┼──────────────────────────┼── ───────────────────┤
│muling tinukoy │ Boolean │ totoo │
├───────────────────┼──────────────────────────┼── ───────────────────┤
│unused_args │ Boolean │ totoo │
├───────────────────┼──────────────────────────┼── ───────────────────┤
│unused_secondaries │ Boolean │ totoo │
├───────────────────┼──────────────────────────┼── ───────────────────┤
│sarili │ Boolean │ totoo │
├───────────────────┼──────────────────────────┼── ───────────────────┤
│std │ String o set ng │ "_G" │
│ │ karaniwang globals │ │
├───────────────────┼──────────────────────────┼── ───────────────────┤
│globals │ Array ng mga string │ {} │
├───────────────────┼──────────────────────────┼── ───────────────────┤
│new_globals │ Array ng mga string │ (Huwag i-overwrite) │
├───────────────────┼──────────────────────────┼── ───────────────────┤
│read_globals │ Array ng mga string │ {} │
├───────────────────┼──────────────────────────┼── ───────────────────┤
│new_read_globals │ Array ng mga string │ (Huwag i-overwrite) │
├───────────────────┼──────────────────────────┼── ───────────────────┤
│compat │ Boolean │ hindi totoo │
├───────────────────┼──────────────────────────┼── ───────────────────┤
│allow_defined │ Boolean │ hindi totoo │
├───────────────────┼──────────────────────────┼── ───────────────────┤
│allow_defined_top │ Boolean │ hindi totoo │
├───────────────────┼──────────────────────────┼── ───────────────────┤
│module │ Boolean │ hindi totoo │
├───────────────────┼──────────────────────────┼── ───────────────────┤
│huwag pansinin │ Array ng mga pattern (tingnan ang │ {} │
│ │ pattern) │ │
├───────────────────┼──────────────────────────┼── ───────────────────┤
│paganahin │ Array ng mga pattern │ {} │
├───────────────────┼──────────────────────────┼── ───────────────────┤
│lamang │ Array ng mga pattern │ (Huwag i-filter) │
├───────────────────┼──────────────────────────┼── ───────────────────┤
│inline │ Boolean │ totoo │
└───────────────────┴──────────────────────────┴── ───────────────────┘
Isang halimbawa ng isang config na gumagawa luacheck siguraduhin na ang mga global lamang mula sa portable
intersection ng Lua 5.1, Lua 5.2, Lua 5.3 at LuaJIT 2.0 ay ginagamit, pati na rin ang pag-disable
pagtuklas ng mga hindi nagamit na argumento:
std = "min"
huwag pansinin = {"212"}
Pasadya set of globals
std ang opsyon ay nagbibigay-daan sa pagtatakda ng isang pasadyang karaniwang hanay ng mga global gamit ang isang talahanayan. Sa mesa na iyon,
Ang mga string key ay mga global, at ang string sa bahagi ng array ay mga read-only na global.
Bukod pa rito, ang mga custom na set ay maaaring bigyan ng mga pangalan sa pamamagitan ng pag-mutate ng global stds variable. Para sa
halimbawa, kapag ginagamit LPEG library, makatuwirang ma-access ang mga function nito sa pamamagitan ng paggamit
globals. Sa kasong iyon, pinapayagan ng sumusunod na config ang pag-alis ng mga maling positibong nauugnay sa
madaling pag-access sa buong mundo:
stds.lpeg = nangangailangan ng "lpeg"
lokal na lpeg = nangangailangan ng "lpeg"
lokal na function parse1(...)
-- Gumagamit lamang ang function na ito ng mga function ng lpeg bilang mga global.
lokal na _ENV = lpeg
-- luacheck: std lpeg
lokal na digit, espasyo = R "09", S " "
--...
dulo
lokal na function parse2(...)
-- Gumagamit ang function na ito ng mga function ng lpeg pati na rin ang mga karaniwang global.
lokal na _ENV = setmetatable({}, {__index = function(_, k) return _ENV[k] o lpeg[k] end})
-- luacheck: std +lpeg
lokal na digit, espasyo = R "09", S " "
lokal na numero = C(digit^1) / tonumber
--...
dulo
Per-file at per-path overrides
Ang kapaligiran kung saan luacheck load ang config ay naglalaman ng isang espesyal na global file. Kailan
pagsuri ng file , luacheck ay i-override ang mga opsyon mula sa pangunahing config na may mga entry
mula mga file[ ] at mga file[ ], paglalapat muna ng mga entry para sa mas maiikling landas. Para sa
halimbawa, muling pinapagana ng sumusunod na config ang pagtuklas ng mga hindi nagamit na argumento para lamang sa mga file sa
src/dir, ngunit hindi para sa src/dir/myfile.lua, at nagbibigay-daan sa paggamit busted globals sa loob ispes /:
std = "min"
huwag pansinin = {"212"}
files["src/dir"] = {enable = {"212"}}
files["src/dir/myfile.lua"] = {ignore = {"212"}}
mga file["spec"] = {std = "+busted"}
Tandaan na ang file talahanayan ay sumusuporta sa autovivification, kaya na
files["myfile.lua"].ignore = {"212"}
at
files["myfile.lua"] = {ignore = {"212"}}
katumbas.
NASA LINYA Opsyon
Sinusuportahan ng Luacheck ang pagtatakda ng ilang mga opsyon nang direkta sa mga naka-check na file gamit ang inline
mga komento sa pagsasaayos. Nagsisimula ang isang inline na komento sa pagsasaayos luacheck: label,
posibleng pagkatapos ng ilang whitespace. Ang katawan ng komento ay dapat maglaman ng comma separated
mga opsyon, kung saan ang invocation ng opsyon ay binubuo ng pangalan nito at mga argumentong pinaghihiwalay ng espasyo. Ang
ang mga sumusunod na opsyon ay sinusuportahan:
┌───────────────────┬───────────────────────────── ─────┐
│Pagpipilian │ Bilang ng mga argumento │
├───────────────────┼───────────────────────────── ─────┤
│global │ 0 │
├───────────────────┼───────────────────────────── ─────┤
│hindi nagamit │ 0 │
├───────────────────┼───────────────────────────── ─────┤
│muling tinukoy │ 0 │
├───────────────────┼───────────────────────────── ─────┤
│hindi nagamit na args │ 0 │
├───────────────────┼───────────────────────────── ─────┤
│hindi nagamit na sekundarya │ 0 │
├───────────────────┼───────────────────────────── ─────┤
│sarili │ 0 │
└───────────────────┴───────────────────────────── ─────┘
│compat │ 0 │
├───────────────────┼───────────────────────────── ─────┤
│module │ 0 │
├───────────────────┼───────────────────────────── ─────┤
│payagan ang tinukoy │ 0 │
├───────────────────┼───────────────────────────── ─────┤
│payagan ang tinukoy na tuktok │ 0 │
├───────────────────┼───────────────────────────── ─────┤
│std │ 1 │
├───────────────────┼───────────────────────────── ─────┤
│global │ 0+ │
├───────────────────┼───────────────────────────── ─────┤
│mga bagong global │ 0+ │
├───────────────────┼───────────────────────────── ─────┤
│read globals │ 0+ │
├───────────────────┼───────────────────────────── ─────┤
│new read globals │ 0+ │
├───────────────────┼───────────────────────────── ─────┤
│ huwag pansinin ang │ 0+ (nang walang argumento lahat │
│ │ ay hindi pinapansin) │
├───────────────────┼───────────────────────────── ─────┤
│paganahin │ 1+ │
├───────────────────┼───────────────────────────── ─────┤
│lamang │ 1+ │
└───────────────────┴───────────────────────────── ─────┘
Maaaring lagyan ng prefix ang mga opsyon na walang argumento hindi upang baligtarin ang kanilang kahulugan. Hal
--luacheck: hindi hindi ginagamit mga pagtatalo hindi pinapagana ang mga hindi nagamit na babala sa argumento.
Nakadepende ang bahagi ng file na apektado ng inline na opsyon sa kung saan ito nakalagay. Kung meron man
code sa linya na may opsyon, ang linyang iyon lang ang apektado; kung hindi, everthing hanggang
ang katapusan ng kasalukuyang pagsasara ay. Sa partikular, ang mga inline na opsyon sa tuktok ng file
nakakaapekto sa lahat ng ito:
-- luacheck: globals g1 g2, huwag pansinin ang foo
local foo = g1(g2) -- Walang inilalabas na babala.
-- Ang sumusunod na hindi nagamit na function ay hindi naiulat.
lokal na function f() -- luacheck: huwag pansinin
-- luacheck: globals g3
g3() -- Walang babala.
dulo
g3() -- Ang babala ay inilalabas bilang inline na opsyon na tumutukoy sa g3 lamang na apektadong function f.
Para sa fine-grained na kontrol sa paggamit ng visibility ng inline na opsyon luacheck: itulak at luacheck:
pop mga direktiba:
-- luacheck: itulak huwag pansinin ang foo
foo() -- Walang babala.
-- luacheck: pop
foo() -- Naglalabas ng babala.
Maaaring ganap na i-disable ang mga inline na opsyon gamit --walang-inline CLI opsyon o inline config
pagpipilian.
LUACHECK MODYUL
paggamit lokal luacheck = mangailangan "luacheck" mag-import luacheck modyul. Ito ay naglalaman ng
mga sumusunod na pag-andar:
· luacheck.get_report(source): Dahil sa pinagmulang string, nagbabalik ng data ng pagsusuri (isang talahanayan).
· luacheck.process_reports(mga ulat, mga pagpipilian): Pinoproseso ang hanay ng mga ulat ng pagsusuri at
nalalapat ang mga opsyon. mga ulat[i] Gumagamit pagpipilian, mga pagpipilian [i], mga pagpipilian[i][1], mga pagpipilian[i][2]...
bilang mga opsyon, na pinapalampas ang isa't isa sa ayos na iyon. Ang talahanayan ng mga pagpipilian ay isang talahanayan na may mga patlang
katulad ng mga pagpipilian sa config; tingnan ang mga pagpipilian. Mga ulat ng pagsusuri na may field nakamamatay ay hindi pinansin.
proseso_mga ulat nagbabalik ng huling ulat, kita n'yo ulat format.
· luacheck.check_strings(mga mapagkukunan, mga pagpipilian): Sinusuri ang hanay ng mga mapagkukunan gamit ang mga opsyon, nagbabalik
huling ulat. Mga talahanayan na may patlang nakamamatay sa loob ng pinagkukunan hindi pinapansin ang array.
· luacheck.check_files(mga file, mga pagpipilian): Sinusuri ang hanay ng mga file gamit ang mga opsyon, nagbabalik ng pangwakas
ulat. Ang mga bukas na file handle ay maaaring ipasa sa halip na mga filename, kung saan sila ay magiging
basahin hanggang EOF at sarado.
· luacheck.get_message(isyu): Nagbabalik ng string na mensahe para sa isang isyu, tingnan ulat format.
luacheck._VERSION naglalaman ng bersyon ng Luacheck bilang isang string sa MAJOR.MINOR.PATCH format.
paggamit luacheck bilang isang function ay katumbas ng pagtawag luacheck.check_files.
ulat format
Ang panghuling ulat ay isang hanay ng mga ulat ng file at mga field babala, error at nakamamatay
naglalaman ng kabuuang bilang ng mga babala, mga error at nakamamatay na mga error, nang naaayon.
Ang ulat ng file ay isang hanay ng mga isyu (mga babala o mga error). Kung naganap ang isang nakamamatay na error habang
pagsuri sa isang file, magkakaroon ng ulat nito nakamamatay field na naglalaman ng uri ng error.
Ang isang isyu ay isang talahanayan na may patlang code na nagpapahiwatig ng uri nito (tingnan babala), at mga patlang linya,
haligi at end_column nakaturo sa pinanggalingan ng babala. pangalan maaaring maglaman ng pangalan ang field
ng kaugnay na variable. Ang mga isyu ng ilang uri ay maaari ding magkaroon ng mga karagdagang field:
┌──────┬─────────────────────────────────────────—───——
│Mga Code │ Mga karagdagang field │
.
│011 │ msg ang field ay naglalaman ng syntax error │
│ │ mensahe. │
.
│111 │ module ipinahihiwatig ng field na │
│ │ assignment ay sa isang non-module │
│ │ pandaigdigang variable. │
.
│211 │ func ipinahihiwatig ng field na hindi nagamit │
Ang │ │ variable ay isang function. │
.
│4.. │ prev_line at prev_column mga patlang │
│ │ naglalaman ng lokasyon ng │
│ │ na-overwrite na kahulugan. │
.
Maaaring naroroon ang ibang mga field para sa panloob na mga kadahilanan.
Ito ay dokumentasyon para sa 0.13.0 na bersyon ng Luacheck, isang linter para sa Lua.
Gamitin ang luacheck online gamit ang mga serbisyo ng onworks.net