Ini ialah arahan luacheck yang boleh dijalankan dalam penyedia pengehosan percuma OnWorks menggunakan salah satu daripada berbilang stesen kerja dalam talian percuma kami seperti Ubuntu Online, Fedora Online, emulator dalam talian Windows atau emulator dalam talian MAC OS.
JADUAL:
NAMA
luacheck - luacheck Dokumentasi
Kandungan:
SENARAI OF AMARAN
Amaran yang dihasilkan oleh Luacheck dikategorikan menggunakan kod amaran tiga digit. Amaran
kod boleh dipaparkan dalam output CLI menggunakan --kod Pilihan CLI atau kod pilihan konfigurasi.
Ralat juga mempunyai kod bermula dengan sifar.
•
│Kod │ Penerangan │
-
│011 │ Ralat sintaks. │
-
│021 │ Pilihan sebaris tidak sah. │
-
│022 │ Tolakan sebaris atas │
│ │ arahan. │
-
│023 │ Arahan pop sebaris yang ditambah. │
-
│111 │ Menetapkan global yang tidak ditentukan │
│ │ pembolehubah. │
-
│112 │ Mengubah global yang tidak ditentukan │
│ │ pembolehubah. │
-
│113 │ Mengakses global yang tidak ditentukan │
│ │ pembolehubah. │
-
│121 │ Menetapkan global baca sahaja │
│ │ pembolehubah. │
-
│122 │ Mengubah global baca sahaja │
│ │ pembolehubah. │
-
│131 │ Tidak digunakan secara tersirat ditakrifkan global │
│ │ pembolehubah. │
-
│211 │ Pembolehubah tempatan yang tidak digunakan. │
-
│212 │ Hujah yang tidak digunakan. │
-
│213 │ Pembolehubah gelung tidak digunakan. │
-
│221 │ Pembolehubah setempat diakses tetapi │
│ │ tidak pernah ditetapkan. │
-
│231 │ Pembolehubah setempat ditetapkan tetapi tidak pernah │
│ │ diakses. │
-
│232 │ Hujah ditetapkan tetapi tidak pernah │
│ │ diakses. │
-
│233 │ Pembolehubah gelung ditetapkan tetapi tidak pernah │
│ │ diakses. │
-
│311 │ Nilai diberikan kepada tempatan │
│ │ pembolehubah tidak digunakan. │
-
│312 │ Nilai hujah tidak digunakan. │
-
│313 │ Nilai pembolehubah gelung ialah │
│ │ tidak digunakan. │
-
│321 │ Mengakses setempat yang tidak dimulakan │
│ │ pembolehubah. │
-
│411 │ Mentakrifkan semula pembolehubah setempat. │
-
│412 │ Mentakrifkan semula hujah. │
-
│413 │ Mentakrifkan semula pembolehubah gelung. │
-
│421 │ Membayangkan pembolehubah setempat. │
-
│422 │ Membayangkan hujah. │
-
│423 │ Membayangkan pembolehubah gelung. │
-
│431 │ Membayangkan nilai atas. │
-
│432 │ Membayangkan hujah nilai tinggi. │
-
│433 │ Membayangkan gelung nilai atas │
│ │ pembolehubah. │
-
│511 │ Kod tidak boleh dicapai. │
-
│512 │ Gelung boleh dilaksanakan paling banyak │
│ │ sekali. │
-
│521 │ Label tidak digunakan. │
-
│531 │ Bahagian kiri tugasan │
│ │ terlalu pendek. │
-
│532 │ Bahagian kiri tugasan │
│ │ terlalu panjang. │
-
│541 │ Satu kosong do akhir blok. │
-
│542 │ Satu kosong if cawangan. │
-
│551 │ Pernyataan kosong. │
-
Global pembolehubah
Untuk setiap fail, Luacheck membina senarai global yang ditentukan yang boleh digunakan di sana. Secara lalai
hanya global daripada perpustakaan standard Lua ditakrifkan; global tersuai boleh ditambah menggunakan
--globals Pilihan CLI atau globals pilihan konfigurasi, dan versi perpustakaan standard boleh
dipilih menggunakan --std Pilihan CLI atau std pilihan konfigurasi. Apabila global yang tidak ditentukan ditetapkan,
bermutasi atau diakses, Luacheck menghasilkan amaran.
Baca sahaja globals
Secara lalai, semua global standard kecuali _G and pakej ditandakan sebagai baca sahaja, supaya
menetapkan atau mengubahnya menghasilkan amaran. Global baca sahaja tersuai boleh ditambah menggunakan
--baca-global Pilihan CLI atau read_globals pilihan konfigurasi.
Secara tersirat ditakrifkan globals
Luacheck boleh dikonfigurasikan untuk mempertimbangkan global yang ditetapkan di bawah beberapa syarat
ditakrifkan secara tersirat. Bila -d/--allow_defined Pilihan CLI atau allow_defined pilihan konfigurasi ialah
digunakan, semua tugasan kepada global menentukannya; bila -t/--allow_defined_top Pilihan CLI atau
allow_defined_top pilihan konfigurasi digunakan, tugasan kepada global dalam fungsi peringkat atas
skop (juga dikenali sebagai bahagian utama) mentakrifkannya. Amaran dihasilkan apabila secara tersirat
global yang ditakrifkan tidak diakses di mana-mana sahaja.
Modul
Fail boleh ditandakan sebagai modul menggunakan -m/--modul Pilihan CLI atau modul pilihan konfigurasi kepada
simulasi semantik yang tidak digunakan modul fungsi. Global ditakrifkan secara tersirat di dalam a
modul dianggap sebagai sebahagian daripada antara mukanya, tidak kelihatan di luar dan tidak dilaporkan
sebagai tidak digunakan. Tugasan kepada global lain tidak dibenarkan, malah kepada yang ditentukan.
Tidak digunakan pembolehubah and nilai
Luacheck menjana amaran untuk semua pembolehubah tempatan yang tidak digunakan kecuali satu yang dinamakan _. Ia juga
mengesan pembolehubah yang ditetapkan tetapi tidak pernah diakses atau diakses tetapi tidak pernah ditetapkan.
Tidak digunakan nilai and tidak dimulakan pembolehubah
Untuk setiap nilai yang diberikan kepada pembolehubah tempatan, Luacheck mengira set ungkapan di mana ia
boleh digunakan. Amaran dihasilkan untuk nilai yang tidak digunakan (apabila nilai tidak boleh digunakan
di mana-mana sahaja) dan untuk mengakses pembolehubah yang tidak dimulakan (apabila tiada nilai boleh mencapai a
ungkapan). Cth dalam nilai coretan berikut yang diberikan kepada foo pada baris 1 tidak digunakan, dan
berubah-ubah bar tidak dimulakan pada baris 9:
foo tempatan = expr1()
bar tempatan
jika keadaan() maka
foo = expr2()
bar = expr3()
lagi
foo = expr4()
cetak(bar)
akhir
kembali foo, bar
Menengah nilai and pembolehubah
Nilai yang tidak digunakan yang diberikan kepada pembolehubah tempatan adalah kedua jika asalnya ialah item terakhir dihidupkan
RHS tugasan, dan nilai lain daripada item itu digunakan. Nilai sekunder
biasanya muncul apabila hasil panggilan fungsi dimasukkan ke dalam orang tempatan, dan hanya sebahagian daripada mereka
digunakan kemudian. Sebagai contoh, di sini nilai diberikan kepada b adalah kedua, nilai diberikan kepada c is
digunakan, dan nilai yang diberikan kepada a hanya tidak digunakan:
setempat a, b, c = f(), g()
kembali c
Pembolehubah adalah sekunder jika semua nilai yang diberikan kepadanya adalah sekunder. Dalam coretan di atas,
b ialah pembolehubah sekunder.
Amaran yang berkaitan dengan nilai sekunder dan pembolehubah yang tidak digunakan boleh dialih keluar menggunakan
-s/--tiada-tidak digunakan-menengah Pilihan CLI atau unused_secondaries pilihan konfigurasi.
Membayangi pengisytiharan
Luacheck mengesan pengisytiharan pembolehubah tempatan yang membayangi pengisytiharan sebelumnya, melainkan
pembolehubah dinamakan _. Jika pengisytiharan sebelumnya berada dalam skop yang sama dengan yang baharu,
ia dipanggil mentakrifkan semula.
Perhatikan bahawa ia adalah tidak diperlukan untuk menentukan pembolehubah tempatan baharu apabila menimpa hujah:
fungsi setempat f(x)
x = x tempatan atau "lalai" -- buruk
akhir
fungsi setempat f(x)
x = x atau "lalai" -- baik
akhir
Mengawal aliran and data aliran isu-isu
Isu aliran kawalan dan aliran data berikut dikesan:
· Kod dan gelung tidak boleh dicapai yang boleh dilaksanakan paling banyak sekali (cth disebabkan oleh
rehat tanpa syarat);
· Label yang tidak digunakan;
· Tugasan tidak seimbang;
· Blok kosong.
· Pernyataan kosong (koma bertitik tanpa pernyataan sebelumnya).
COMMAND LINE INTERFACE
luacheck program menerima fail, direktori dan rockspecs sebagai hujah.
· Diberi fail, luacheck akan menyemaknya.
· Diberi -, luacheck akan menyemak stdin.
· Diberi direktori, luacheck akan menyemak semua fail di dalamnya, memilih hanya fail dengan
.lua lanjutan melainkan --include-files pilihan digunakan. Ciri ini memerlukan
LuaFileSystem (dipasang secara automatik jika LuaRocks digunakan untuk memasang Luacheck).
· Diberi rockspec (fail dengan .rockspec sambungan), luacheck akan menyemak semua fail dengan
.lua sambungan yang disebut dalam rockspec dalam build.install.lua, build.install.bin and
bina.modul jadual.
Pengeluaran luacheck terdiri daripada laporan berasingan untuk setiap fail yang disemak dan berakhir dengan a
Kesimpulannya:
$ luacheck src
Menyemak src/bad_code.lua 5 amaran
src/bad_code.lua:3:16: pembantu pembolehubah yang tidak digunakan
src/bad_code.lua:3:23: hujah panjang boleh ubah yang tidak digunakan
src/bad_code.lua:7:10: menetapkan pelukan pembolehubah global bukan standard
src/bad_code.lua:8:10: opt pembolehubah sebelum ini ditakrifkan sebagai hujah pada baris 7
src/bad_code.lua:9:11: mengakses hepler pembolehubah yang tidak ditentukan
Menyemak src/good_code.lua OK
Menyemak ralat src/python_code.lua 1
src/python_code.lua:1:6: dijangka '=' berhampiran '__future__'
Menyemak amaran src/unused_code.lua 9
src/unused_code.lua:3:18: baz hujah yang tidak digunakan
src/unused_code.lua:4:8: pembolehubah gelung tidak digunakan i
src/unused_code.lua:5:13: pembolehubah tidak digunakan q
src/unused_code.lua:7:11: pembolehubah gelung tidak digunakan a
src/unused_code.lua:7:14: pembolehubah gelung tidak digunakan b
src/unused_code.lua:7:17: pembolehubah gelung tidak digunakan c
src/unused_code.lua:13:7: nilai yang diberikan kepada pembolehubah x tidak digunakan
src/unused_code.lua:14:1: nilai yang diberikan kepada pembolehubah x tidak digunakan
src/unused_code.lua:22:1: nilai yang diberikan kepada pembolehubah z tidak digunakan
Jumlah: 14 amaran / 1 ralat dalam 4 fail
luacheck keluar dengan 0 jika tiada amaran atau ralat berlaku dan dengan nombor positif
sebaliknya.
Perintah selaras pilihan
Pilihan pendek yang tidak mengambil hujah boleh digabungkan menjadi satu, supaya -qqu is
bersamaan dengan -q -q -u. Untuk pilihan yang panjang, kedua-duanya --pilihan nilai or --option=value boleh
terpakai.
Pilihan yang mengambil beberapa hujah boleh digunakan beberapa kali; --abai foo --abai bar is
bersamaan dengan --abai foo bar.
Ambil perhatian bahawa pilihan yang mungkin memerlukan beberapa hujah, seperti --globals, tidak boleh digunakan
serta-merta sebelum hujah kedudukan; diberi --globals foo bar fail.lua, luacheck akan
pertimbangkan semua foo, bar and fail.lua global dan kemudian panik kerana tiada nama fail yang tinggal.
┌─────────────────────────────────┬─────────────── ───────────────────┐
│Pilihan │ Maksud │
├─────────────────────────────────┼─────────────── ───────────────────┤
│-g | --tidak-global │ Tapis amaran yang berkaitan dengan │
│ │ pembolehubah global. │
├─────────────────────────────────┼─────────────── ───────────────────┤
│-u | --tidak-tidak digunakan │ Tapis amaran yang berkaitan dengan │
│ │ pembolehubah dan nilai yang tidak digunakan. │
├─────────────────────────────────┼─────────────── ───────────────────┤
│-r | --tidak ditakrifkan semula │ Tapis amaran yang berkaitan dengan │
│ │ ditakrifkan semula pembolehubah. │
├─────────────────────────────────┼─────────────── ───────────────────┤
│-a | --no-unused-args │ Tapis amaran yang berkaitan dengan │
│ │ argumen dan gelung yang tidak digunakan │
│ │ pembolehubah. │
├─────────────────────────────────┼─────────────── ───────────────────┤
│-s | --tiada-tidak digunakan-menengah │ Tapis amaran yang berkaitan dengan │
│ │ pembolehubah yang tidak digunakan ditetapkan bersama │
│ │ dengan yang terpakai. │
│ │ │
│ │ Lihat nilai sekunder dan pembolehubah │
├─────────────────────────────────┼─────────────── ───────────────────┤
│--tidak-diri │ Tapis amaran yang berkaitan dengan │
│ │ tersirat diri hujah. │
└─────────────────────────────────┴─────────────── ───────────────────┘
│--std │ Tetapkan standard global. boleh │
│ │ menjadi salah satu daripada: │
│ │ │
│ │ · _G - global Lua │
│ │ jurubahasa luacheck │
│ │ berjalan pada (lalai); │
│ │ │
│ │ · lua51 - global Lua │
│ │ 5.1; │
│ │ │
│ │ · lua52 - global Lua │
│ │ 5.2; │
│ │ │
│ │ · lua52c - global Lua │
│ │ 5.2 disusun dengan │
│ │ LUA_COMPAT_ALL; │
│ │ │
│ │ · lua53 - global Lua │
│ │ 5.3; │
│ │ │
│ │ · lua53c - global Lua │
│ │ 5.3 disusun dengan │
│ │ LUA_COMPAT_5_2; │
│ │ │
│ │ · luajit - global │
│ │ LuaJIT 2.0; │
│ │ │
│ │ · ngx_lua - global │
│ │ Keterbukaan │
│ │ modul-lua-nginx dengan │
│ │ LuaJIT 2.0; │
│ │ │
│ │ · minit - persimpangan │
│ │ global Lua 5.1, Lua │
│ │ 5.2 dan LuaJIT 2.0; │
│ │ │
│ │ · maks - kesatuan global │
│ │ daripada Lua 5.1, Lua 5.2 dan │
│ │ LuaJIT 2.0; │
│ │ │
│ │ · dirampas - global ditambah │
│ │ oleh Busted 2.0; │
│ │ │
│ │ · tiada - tiada standard │
│ │ global. │
│ │ │
│ │ Lihat Set of standard │
│ │ globals │
├─────────────────────────────────┼─────────────── ───────────────────┤
│--globals [ ] ... │ Tambahkan global tersuai di atas │
│ │ yang standard. │
├─────────────────────────────────┼─────────────── ───────────────────┤
│--baca-global [ ] ... │ Tambahkan global baca sahaja. │
├─────────────────────────────────┼─────────────── ───────────────────┤
│--baru-globals [ ] ... │ Tetapkan global tersuai. Mengeluarkan │
│ │ global tersuai telah ditambahkan sebelum ini. │
├─────────────────────────────────┼─────────────── ───────────────────┤
│--baharu-baca-global [ ] │ Tetapkan global baca sahaja. Mengeluarkan │
│... │ global baca sahaja ditambah │
│ │ sebelum ini. │
├─────────────────────────────────┼─────────────── ───────────────────┤
│-c | --compat │ Bersamaan dengan --std maks. │
└─────────────────────────────────┴─────────────── ───────────────────┘
│-d | --benarkan-ditakrifkan │ Benarkan mentakrifkan global │
│ │ secara tersirat dengan menetapkannya. │
│ │ │
│ │ Lihat implicitlydefinedglobals │
├─────────────────────────────────┼─────────────── ───────────────────┤
│-t | --benarkan-ditentukan-atas │ Benarkan mentakrifkan global │
│ │ secara tersirat dengan menetapkannya dalam │
│ │ skop peringkat atas. │
│ │ │
│ │ Lihat implicitlydefinedglobals │
├─────────────────────────────────┼─────────────── ───────────────────┤
│-m | --modul │ Hadkan keterlihatan secara tersirat │
│ │ mentakrifkan global kepada fail mereka. │
│ │ │
│ │ Lihat modul │
├─────────────────────────────────┼─────────────── ───────────────────┤
│--abai | -i [ ] │ Tapis keluar amaran yang sepadan │
│... │ corak. │
├─────────────────────────────────┼─────────────── ───────────────────┤
│--dayakan | -e [ ] │ Jangan tapis amaran │
│... │ corak padan. │
├─────────────────────────────────┼─────────────── ───────────────────┤
│--sahaja | -o [ ] ... │ Tapis amaran yang tidak sepadan │
│ │ corak. │
├─────────────────────────────────┼─────────────── ───────────────────┤
│--tiada-dalam talian │ Lumpuhkan pilihan dalam talian. │
├─────────────────────────────────┼─────────────── ───────────────────┤
│--config │ Laluan ke konfigurasi tersuai │
│ │ fail (lalai: .luacheckrc). │
├─────────────────────────────────┼─────────────── ───────────────────┤
│--no-config │ Jangan cari tersuai │
│ │ fail konfigurasi. │
├─────────────────────────────────┼─────────────── ───────────────────┤
│--nama fail │ Gunakan nama fail lain dalam output, │
│ │ untuk memilih konfigurasi │
│ │ menimpa dan untuk fail │
│ │ penapisan. │
├─────────────────────────────────┼─────────────── ───────────────────┤
│--exclude-files [ ] │ Jangan semak fail yang sepadan │
│... │ corak globbing ini. │
│ │ Gumpalan rekursif seperti **/*.lua │
│ │ disokong. │
├─────────────────────────────────┼─────────────── ───────────────────┤
│--include-files [ ] │ Jangan semak fail tidak sepadan │
│... │ corak globbing ini. │
├─────────────────────────────────┼─────────────── ───────────────────┤
│--cache [ ] │ Laluan ke fail cache. (lalai: │
│ │ .luacheckcache). Lihat Caching │
├─────────────────────────────────┼─────────────── ───────────────────┤
│--tiada-cache │ Jangan gunakan cache. │
├─────────────────────────────────┼─────────────── ───────────────────┤
│-j | --pekerjaan │ Semak fail secara selari. │
│ │ Memerlukan LuaLanes. │
└─────────────────────────────────┴─────────────── ───────────────────┘
│--pemformat │ Gunakan pemformat tersuai. │
│ │ mestilah modul │
│ │ nama atau salah satu daripada: │
│ │ │
│ │ · TAP - Uji Apa-apa sahaja │
│ │ Pemformat protokol; │
│ │ │
│ │ · JUnit - JUnit XML │
│ │ pemformat; │
│ │ │
│ │ · kosong - mudah │
│ │ amaran setiap baris │
│ │ pemformat; │
│ │ │
│ │ · lalai - standard │
│ │ pemformat. │
├─────────────────────────────────┼─────────────── ───────────────────┤
│-q | --senyap │ Sekat output laporan untuk fail │
│ │ tanpa amaran. │
│ │ │
│ │ · -qq - Sekat output │
│ │ amaran. │
│ │ │
│ │ · -qqq - Hanya keluaran │
│ │ ringkasan. │
├─────────────────────────────────┼─────────────── ───────────────────┤
│--kod │ Tunjukkan kod amaran. │
├─────────────────────────────────┼─────────────── ───────────────────┤
│--julat │ Tunjukkan julat lajur yang berkaitan │
│ │ kepada amaran. │
├─────────────────────────────────┼─────────────── ───────────────────┤
│--tiada-warna │ Jangan warnakan output. │
├─────────────────────────────────┼─────────────── ───────────────────┤
│-v | --versi │ Tunjukkan versi Luacheck dan │nya
│ │ kebergantungan dan keluar. │
├─────────────────────────────────┼─────────────── ───────────────────┤
│-h | - membantu │ Tunjukkan bantuan dan keluar. │
└─────────────────────────────────┴─────────────── ───────────────────┘
Corak
Pilihan CLI --abai, --dayakan and --sahaja dan pilihan konfigurasi yang sepadan membenarkan penapisan
amaran menggunakan padanan corak pada kod amaran, nama pembolehubah atau kedua-duanya. Jika corak
mengandungi garis miring, bahagian sebelum garis miring sepadan dengan kod amaran dan bahagian selepas padanan
nama pembolehubah. Jika tidak, jika corak mengandungi huruf atau garis bawah, ia sepadan
nama pembolehubah. Jika tidak, ia sepadan dengan kod amaran. Cth:
┌────────┬───────────────────────────────────────——─ —
│Corak │ Amaran sepadan │
-
│4.2 │ Pengisytiharan membayangi │
│ │ hujah atau mentakrifkannya semula. │
-
│.*_ │ Amaran berkaitan pembolehubah │
│ │ dengan _ akhiran. │
-
│4.2/.*_ │ Pengisytiharan membayangi │
│ │ hujah dengan _ akhiran atau │
│ │ mentakrifkan semula mereka. │
-
Melainkan telah dilabuhkan, corak yang sepadan dengan nama pembolehubah dilabuhkan pada kedua-dua belah dan
corak yang sepadan dengan kod amaran dilabuhkan pada permulaannya. Ini membolehkan seseorang untuk
tapis amaran mengikut kategori (cth --sahaja 1 memberi tumpuan luacheck mengenai amaran berkaitan global).
Set of standard globals
Pilihan CLI --stds membenarkan gabungan set terbina dalam yang diterangkan di atas menggunakan +. Sebagai contoh,
--std maks adalah bersamaan dengan --std=lua51+lua52+lua53. Tanda tambah terkemuka menambah set baharu
lalai dan bukannya menggantikannya. Sebagai contoh, --std +ditumpaskan sesuai untuk diperiksa
fail ujian yang menggunakan Menumpaskan rangka kerja ujian. Set tersuai global boleh ditakrifkan oleh
mengubah pembolehubah global stds dalam konfigurasi. Lihat custom_stds
Pemformat
Pilihan CLI --pemformat membolehkan memilih pemformat tersuai untuk luacheck pengeluaran. Satu adat
pemformat ialah modul Lua yang mengembalikan fungsi dengan tiga argumen: laporan seperti yang dikembalikan oleh
luacheck modul (lihat laporan), tatasusunan nama fail dan jadual pilihan. Pilihan mengandungi
nilai yang diberikan kepada tenang, warna, menghadkan, kod, julat and pemformat pilihan dalam CLI atau
konfigurasi. Fungsi pemformat mesti mengembalikan rentetan.
Caching
Jika LuaFileSystem tersedia, Luacheck boleh cache hasil semakan fail. Pada seterusnya
semakan, hanya fail yang telah berubah sejak semakan terakhir akan disemak semula, bertambah baik
masa berjalan dengan ketara. Menukar pilihan (cth mentakrifkan global tambahan) tidak
cache tidak sah. Caching boleh didayakan dengan menggunakan --cache pilihan atau cache config
pilihan. menggunakan --cache tanpa hujah atau latar cache pilihan konfigurasi kepada benar set
.luacheckcache sebagai fail cache. Perhatikan bahawa --cache mesti digunakan setiap masa luacheck is
lari, bukan pada larian pertama sahaja.
Stabil antara muka khususnya editor plugin and alat
Antara muka baris perintah Luacheck boleh berubah antara keluaran kecil. Bermula dari 0.11.0
versi, antara muka berikut dijamin sekurang-kurangnya sehingga versi 1.0.0, dan sepatutnya
digunakan oleh alatan menggunakan output Luacheck, cth pemalam editor.
· Luacheck hendaklah dimulakan daripada direktori yang mengandungi fail yang disemak.
· Fail boleh dihantar melalui stdin menggunakan - sebagai hujah atau menggunakan fail sementara. Nyata
nama fail hendaklah diluluskan menggunakan --nama fail pilihan.
· Pemformat biasa hendaklah digunakan. Ia mengeluarkan satu isu (amaran atau ralat) setiap baris.
· Untuk mendapatkan lokasi ralat yang tepat, --julat pilihan boleh digunakan. Setiap baris bermula dengan sebenar
nama fail (lulus menggunakan --nama fail), diikuti oleh : : - :,
di mana ialah nombor baris pada isu yang berlaku dan - is
julat inklusif lajur token yang berkaitan dengan isu. Penomboran bermula dari 1. Jika
--julat tidak digunakan, lajur akhir dan sempang tidak dicetak.
· Untuk mendapatkan kod amaran dan ralat, --kod pilihan boleh digunakan. Untuk setiap baris, subrentetan
antara kurungan mengandungi kod keluaran tiga digit, diawali dengan E untuk kesilapan dan W
untuk amaran. Kekurangan subrentetan sedemikian menunjukkan ralat maut (cth ralat I/O).
· Selebihnya talian adalah mesej amaran.
Jika keserasian dengan versi Luacheck yang lebih lama dikehendaki, keluaran daripada luacheck - membantu boleh
digunakan untuk mendapatkan versinya. Jika ia mengandungi rentetan 0. ., Di mana ada di
kurangnya 11 dan tampalan adalah sebarang nombor, antara muka yang diterangkan di atas harus digunakan.
CONFIGURATION FAIL
luacheck cuba memuatkan konfigurasi daripada .luacheckrc fail dalam direktori semasa. Jika
tidak dijumpai, ia akan mencarinya dalam direktori induk dan seterusnya, naik sehingga ia
mencapai akar sistem fail. Laluan ke konfigurasi boleh ditetapkan menggunakan --config pilihan, dalam hal ini
ia akan digunakan semasa pemuatan rekursif. Pemuatan konfigurasi boleh dilumpuhkan menggunakan --no-config
bendera.
Config hanyalah skrip Lua yang dilaksanakan oleh luacheck. Ia mungkin menetapkan pelbagai pilihan oleh
memberikan kepada global atau dengan mengembalikan jadual dengan nama pilihan sebagai kunci.
config pilihan
┌───────────────────┬──────────────────────────┬── ───────────────────┐
│Pilihan │ Jenis │ Nilai lalai │
├───────────────────┼──────────────────────────┼── ───────────────────┤
│warna │ Boolean │ benar │
├───────────────────┼──────────────────────────┼── ───────────────────┤
│kod │ Boolean │ palsu │
└───────────────────┴──────────────────────────┴── ───────────────────┘
│pemformat │ Rentetan atau fungsi │ "lalai" │
├───────────────────┼──────────────────────────┼── ───────────────────┤
│cache │ Boolean atau rentetan │ palsu │
├───────────────────┼──────────────────────────┼── ───────────────────┤
│pekerjaan │ Integer positif │ 1 │
├───────────────────┼──────────────────────────┼── ───────────────────┤
│exclude_files │ Susunan rentetan │ {} │
├───────────────────┼──────────────────────────┼── ───────────────────┤
│include_files │ Susunan rentetan │ (Sertakan semua fail) │
├───────────────────┼──────────────────────────┼── ───────────────────┤
│global │ Boolean │ benar │
├───────────────────┼──────────────────────────┼── ───────────────────┤
│tidak digunakan │ Boolean │ benar │
├───────────────────┼──────────────────────────┼── ───────────────────┤
│didefinisikan semula │ Boolean │ benar │
├───────────────────┼──────────────────────────┼── ───────────────────┤
│unused_args │ Boolean │ benar │
├───────────────────┼──────────────────────────┼── ───────────────────┤
│unused_secondaries │ Boolean │ benar │
├───────────────────┼──────────────────────────┼── ───────────────────┤
│diri │ Boolean │ benar │
├───────────────────┼──────────────────────────┼── ───────────────────┤
│std │ Rentetan atau set │ "_G" │
│ │ global standard │ │
├───────────────────┼──────────────────────────┼── ───────────────────┤
│globals │ Susunan rentetan │ {} │
├───────────────────┼──────────────────────────┼── ───────────────────┤
│new_globals │ Susunan rentetan │ (Jangan tulis ganti) │
├───────────────────┼──────────────────────────┼── ───────────────────┤
│read_globals │ Susunan rentetan │ {} │
├───────────────────┼──────────────────────────┼── ───────────────────┤
│new_read_globals │ Susunan rentetan │ (Jangan tulis ganti) │
├───────────────────┼──────────────────────────┼── ───────────────────┤
│compat │ Boolean │ palsu │
├───────────────────┼──────────────────────────┼── ───────────────────┤
│allow_defined │ Boolean │ palsu │
├───────────────────┼──────────────────────────┼── ───────────────────┤
│allow_defined_top │ Boolean │ palsu │
├───────────────────┼──────────────────────────┼── ───────────────────┤
│modul │ Boolean │ palsu │
├───────────────────┼──────────────────────────┼── ───────────────────┤
│mengabaikan │ Susunan corak (lihat │ {} │
│ │ corak) │ │
├───────────────────┼──────────────────────────┼── ───────────────────┤
│membolehkan │ Susunan corak │ {} │
├───────────────────┼──────────────────────────┼── ───────────────────┤
│hanyalah │ Susunan corak │ (Jangan tapis) │
├───────────────────┼──────────────────────────┼── ───────────────────┤
│sebaris │ Boolean │ benar │
└───────────────────┴──────────────────────────┴── ───────────────────┘
Contoh konfigurasi yang membuat luacheck memastikan bahawa hanya global daripada mudah alih
persimpangan Lua 5.1, Lua 5.2, Lua 5.3 dan LuaJIT 2.0 digunakan, serta melumpuhkan
pengesanan hujah yang tidak digunakan:
std = "min"
abaikan = {"212"}
Adat set of globals
std pilihan membenarkan menetapkan set standard tersuai global menggunakan jadual. Dalam jadual itu,
kunci rentetan adalah global, dan rentetan dalam bahagian tatasusunan ialah global baca sahaja.
Selain itu, set tersuai boleh diberi nama dengan mengubah global stds pembolehubah. Untuk
contoh, apabila menggunakan LPEG perpustakaan, adalah masuk akal untuk mengakses fungsinya dengan cepat menggunakan
global. Dalam kes itu, konfigurasi berikut membenarkan mengalih keluar positif palsu yang berkaitan dengan
akses global dengan mudah:
stds.lpeg = memerlukan "lpeg"
lpeg tempatan = memerlukan "lpeg"
fungsi setempat parse1(...)
-- Fungsi ini hanya menggunakan fungsi lpeg sebagai global.
tempatan _ENV = lpeg
-- luacheck: std lpeg
digit tempatan, ruang = R "09", S " "
--...
akhir
fungsi setempat parse2(...)
-- Fungsi ini menggunakan fungsi lpeg serta global standard.
local _ENV = setmetatable({}, {__index = function(_, k) return _ENV[k] atau lpeg[k] end})
-- luacheck: std +lpeg
digit tempatan, ruang = R "09", S " "
nombor tempatan = C(digit^1) / tonumber
--...
akhir
Per-fail and setiap laluan mengatasi
Persekitaran di mana luacheck memuatkan konfigurasi mengandungi global khas fail. Apabila
menyemak fail , luacheck akan mengatasi pilihan daripada konfigurasi utama dengan entri
dari fail[ ] and fail[ ], memohon masukan untuk laluan yang lebih pendek dahulu. Untuk
contoh, konfigurasi berikut mendayakan semula pengesanan argumen yang tidak digunakan hanya untuk fail dalam
src/dir, tetapi tidak untuk src/dir/myfile.lua, dan membenarkan penggunaan Menumpaskan global dalam spesifikasi/:
std = "min"
abaikan = {"212"}
fail["src/dir"] = {dayakan = {"212"}}
files["src/dir/myfile.lua"] = {ignore = {"212"}}
files["spec"] = {std = "+busted"}
Perhatikan bahawa fail jadual menyokong autovivifikasi, supaya
files["myfile.lua"].ignore = {"212"}
and
files["myfile.lua"] = {ignore = {"212"}}
setaraf.
DALAM BARISAN PILIHAN
Luacheck menyokong menetapkan beberapa pilihan secara langsung dalam fail yang disemak menggunakan sebaris
ulasan konfigurasi. Komen konfigurasi sebaris bermula dengan luacheck: label,
mungkin selepas beberapa ruang kosong. Badan ulasan hendaklah mengandungi dipisahkan koma
pilihan, di mana seruan pilihan terdiri daripada namanya ditambah hujah yang diasingkan ruang. The
pilihan berikut disokong:
┌───────────────────┬───────────────────────────── ─────┐
│Pilihan │ Bilangan hujah │
├───────────────────┼───────────────────────────── ─────┤
│global │ 0 │
├───────────────────┼───────────────────────────── ─────┤
│tidak digunakan │ 0 │
├───────────────────┼───────────────────────────── ─────┤
│ditakrifkan semula │ 0 │
├───────────────────┼───────────────────────────── ─────┤
│args yang tidak digunakan │ 0 │
├───────────────────┼───────────────────────────── ─────┤
│sekunder tidak digunakan │ 0 │
├───────────────────┼───────────────────────────── ─────┤
│diri sendiri │ 0 │
└───────────────────┴───────────────────────────── ─────┘
│compat │ 0 │
├───────────────────┼───────────────────────────── ─────┤
│modul │ 0 │
├───────────────────┼───────────────────────────── ─────┤
│benarkan ditakrifkan │ 0 │
├───────────────────┼───────────────────────────── ─────┤
│benarkan bahagian atas yang ditentukan │ 0 │
├───────────────────┼───────────────────────────── ─────┤
│std │ 1 │
├───────────────────┼───────────────────────────── ─────┤
│globals │ 0+ │
├───────────────────┼───────────────────────────── ─────┤
│global baharu │ 0+ │
├───────────────────┼───────────────────────────── ─────┤
│baca global │ 0+ │
├───────────────────┼───────────────────────────── ─────┤
│baca global global │ 0+ │
├───────────────────┼───────────────────────────── ─────┤
│abaikan │ 0+ (tanpa hujah semuanya │
│ │ diabaikan) │
├───────────────────┼───────────────────────────── ─────┤
│dayakan │ 1+ │
├───────────────────┼───────────────────────────── ─────┤
│hanya │ 1+ │
└───────────────────┴───────────────────────────── ─────┘
Pilihan yang tidak mengambil hujah boleh diawali dengan tidak untuk menyongsangkan maksud mereka. Cth
--luacheck: tidak tidak digunakan args melumpuhkan amaran hujah yang tidak digunakan.
Sebahagian daripada fail yang dipengaruhi oleh pilihan sebaris bergantung pada tempat ia diletakkan. Jika ada
kod pada baris dengan pilihan, hanya baris itu terjejas; jika tidak, everthing sehingga
penghujung penutupan semasa ialah. Khususnya, pilihan sebaris di bahagian atas fail
mempengaruhi semua itu:
-- luacheck: globals g1 g2, abaikan foo
local foo = g1(g2) -- Tiada amaran dikeluarkan.
-- Fungsi yang tidak digunakan berikut tidak dilaporkan.
fungsi setempat f() -- luacheck: abaikan
-- luacheck: globals g3
g3() -- Tiada amaran.
akhir
g3() -- Amaran dikeluarkan kerana pilihan sebaris yang mentakrifkan g3 hanya fungsi terjejas f.
Untuk kawalan terperinci ke atas penggunaan keterlihatan pilihan sebaris luacheck: menolak and luacheck:
pop arahan:
-- luacheck: tolak abaikan foo
foo() -- Tiada amaran.
-- luacheck: pop
foo() -- Amaran dikeluarkan.
Pilihan dalam talian boleh dilumpuhkan sepenuhnya menggunakan --tiada-dalam talian Pilihan CLI atau sebaris config
pilihan.
LUACHECK MODULE
Penggunaan tempatan luacheck = memerlukan "luacheck" untuk mengimport luacheck modul. Ia mengandungi
fungsi berikut:
· luacheck.get_report(sumber): Diberi rentetan sumber, mengembalikan data analisis (jadual).
· luacheck.process_reports(laporan, pilihan): Memproses tatasusunan laporan analisis dan
menggunakan pilihan. laporan[i] menggunakan pilihan, pilihan[i], pilihan[i][1], pilihan[i][2]...
sebagai pilihan, mengatasi satu sama lain dalam susunan itu. Jadual pilihan ialah jadual dengan medan
serupa dengan pilihan konfigurasi; lihat pilihan. Laporan analisis dengan medan maut tidak dipedulikan.
proses_laporan mengembalikan laporan akhir, lihat Laporan format.
· luacheck.check_strings(sumber, pilihan): Menyemak pelbagai sumber menggunakan pilihan, pulangan
laporan akhir. Meja dengan medan maut dalam sumber tatasusunan diabaikan.
· luacheck.check_files(fail, pilihan): Menyemak tatasusunan fail menggunakan pilihan, mengembalikan muktamad
laporan. Pemegang fail terbuka boleh diluluskan dan bukannya nama fail, dalam hal ini ia akan menjadi
baca sehingga EOF dan ditutup.
· luacheck.get_message(isu): Mengembalikan mesej rentetan untuk isu, lihat Laporan format.
luacheck._VERSION mengandungi versi Luacheck sebagai rentetan dalam MAJOR.MINOR.PATCH format.
Menggunakan luacheck sebagai fungsi adalah bersamaan dengan memanggil luacheck.check_files.
Laporan format
Laporan akhir ialah susunan laporan fail ditambah medan amaran, kesilapan and maut
mengandungi jumlah amaran, ralat dan ralat maut, yang sepadan.
Laporan fail ialah pelbagai isu (amaran atau ralat). Jika ralat maut berlaku semasa
menyemak fail, laporannya akan mempunyai maut medan yang mengandungi jenis ralat.
Isu ialah jadual dengan medan kod menunjukkan jenisnya (lihat amaran), dan medan selaras,
ruang and lajur_akhir menunjuk kepada sumber amaran itu. nama medan mungkin mengandungi nama
pembolehubah berkaitan. Isu beberapa jenis juga boleh mempunyai medan tambahan:
┌──────┬───────────────────────────────────────── ─── ─
│Kod │ Medan tambahan │
-
│011 │ msg medan mengandungi ralat sintaks │
│ │ mesej. │
-
│111 │ modul medan menunjukkan bahawa │
│ │ tugasan adalah kepada bukan modul │
│ │ pembolehubah global. │
-
│211 │ func medan menunjukkan bahawa tidak digunakan │
│ │ pembolehubah ialah fungsi. │
-
│4.. │ prev_line and lajur_sebelumnya medan │
│ │ mengandungi lokasi │
│ │ takrif ditimpa. │
-
Medan lain mungkin ada atas sebab dalaman.
Ini adalah dokumentasi untuk versi 0.13.0 Luacheck, linter untuk Lua.
Gunakan luacheck dalam talian menggunakan perkhidmatan onworks.net