Đây là lệnh luacheck có thể được chạy trong nhà cung cấp dịch vụ lưu trữ miễn phí OnWorks bằng cách sử dụng một trong nhiều máy trạm trực tuyến miễn phí của chúng tôi như Ubuntu Online, Fedora Online, trình giả lập trực tuyến Windows hoặc trình mô phỏng trực tuyến MAC OS
CHƯƠNG TRÌNH:
TÊN
luacheck - tài liệu luacheck
Nội dung:
DANH SÁCH OF CẢNH BÁO
Các cảnh báo do Luacheck đưa ra được phân loại bằng cách sử dụng mã cảnh báo ba chữ số. Cảnh báo
mã có thể được hiển thị trong đầu ra CLI bằng cách sử dụng --mã Tùy chọn CLI hoặc mã số tùy chọn cấu hình.
Lỗi cũng có mã bắt đầu bằng số không.
┌─────┬─────────────────────────
│ Mã Mô tả │
├─────┼─────────────────────────
│011 │ Lỗi cú pháp. │
├─────┼─────────────────────────
│021 │ Tùy chọn nội tuyến không hợp lệ. │
├─────┼─────────────────────────
│022 │ Đẩy nội tuyến đã được sửa chữa │
│ │ chỉ thị. │
├─────┼─────────────────────────
│023 │ Một chỉ thị pop nội tuyến đã được sửa chữa. │
├─────┼─────────────────────────
│111 │ Đặt toàn cầu không xác định │
│ │ biến. │
├─────┼─────────────────────────
│112 │ Thay đổi một toàn cầu không xác định │
│ │ biến. │
├─────┼─────────────────────────
│113 │ Truy cập toàn cầu không xác định │
│ │ biến. │
├─────┼─────────────────────────
│121 │ Đặt toàn cầu chỉ đọc │
│ │ biến. │
├─────┼─────────────────────────
│122 │ Thay đổi toàn cục chỉ đọc │
│ │ biến. │
├─────┼─────────────────────────
│131 │ Toàn cầu được xác định ngầm không được sử dụng │
│ │ biến. │
├─────┼─────────────────────────
│211 │ Biến cục bộ không được sử dụng. │
├─────┼─────────────────────────
│212 │ Đối số không được sử dụng. │
├─────┼─────────────────────────
│213 │ Biến vòng lặp không sử dụng. │
├─────┼─────────────────────────
│221 │ Biến cục bộ được truy cập nhưng │
│ │ không bao giờ đặt. │
├─────┼─────────────────────────
│231 │ Biến cục bộ được đặt nhưng không bao giờ │
│ │ đã truy cập. │
├─────┼─────────────────────────
│232 │ Một đối số được thiết lập nhưng không bao giờ │
│ │ đã truy cập. │
├─────┼─────────────────────────
│233 │ Biến vòng lặp được đặt nhưng không bao giờ │
│ │ đã truy cập. │
├─────┼─────────────────────────
│311 │ Giá trị được chỉ định cho một địa phương │
Biến │ │ không được sử dụng. │
└─────┴─────────────────────────
│312 │ Giá trị của một đối số không được sử dụng. │
├─────┼─────────────────────────
│313 │ Giá trị của một biến vòng lặp là │
│ │ chưa sử dụng. │
├─────┼─────────────────────────
│321 │ Truy cập cục bộ chưa khởi tạo │
│ │ biến. │
├─────┼─────────────────────────
│411 │ Định nghĩa lại một biến cục bộ. │
├─────┼─────────────────────────
│412 │ Xác định lại đối số. │
├─────┼─────────────────────────
│413 │ Định nghĩa lại biến vòng lặp. │
├─────┼─────────────────────────
│421 │ Đánh bóng một biến cục bộ. │
├─────┼─────────────────────────
│422 │ Làm mờ một cuộc tranh cãi. │
├─────┼─────────────────────────
│423 │ Đánh bóng biến vòng lặp. │
├─────┼─────────────────────────
│431 │ Đánh bóng giá trị tăng. │
├─────┼─────────────────────────
│432 │ Làm mờ đối số giá trị tăng. │
├─────┼─────────────────────────
│433 │ Đánh bóng vòng lặp giá trị tăng │
│ │ biến. │
├─────┼─────────────────────────
│511 │ Mã không thể truy cập. │
├─────┼─────────────────────────
│512 │ Có thể thực hiện tối đa vòng lặp │
│ │ một lần. │
├─────┼─────────────────────────
│521 │ Nhãn không sử dụng. │
├─────┼─────────────────────────
│531 │ Phía bên trái của bài tập │
│ │ quá ngắn. │
├─────┼─────────────────────────
│532 │ Phía bên trái của bài tập │
│ │ quá dài. │
├─────┼─────────────────────────
│541 │ Trống rỗng do cuối khối. │
├─────┼─────────────────────────
│542 │ Trống rỗng if chi nhánh. │
├─────┼─────────────────────────
│551 │ Một câu lệnh trống. │
└─────┴─────────────────────────
Toàn cầu biến
Đối với mỗi tệp, Luacheck xây dựng danh sách các hình cầu đã xác định có thể được sử dụng ở đó. Theo mặc định
chỉ các hình cầu từ thư viện tiêu chuẩn Lua được xác định; hình cầu tùy chỉnh có thể được thêm vào bằng cách sử dụng
- cầu lông Tùy chọn CLI hoặc toàn cầu tùy chọn cấu hình và phiên bản của thư viện tiêu chuẩn có thể
đã chọn bằng cách sử dụng --std Tùy chọn CLI hoặc tiêu chuẩn tùy chọn cấu hình. Khi một tổng thể không xác định được đặt,
bị đột biến hoặc bị truy cập, Luacheck đưa ra cảnh báo.
Chỉ đọc toàn cầu
Theo mặc định, tất cả các hình cầu tiêu chuẩn ngoại trừ _G và gói được đánh dấu là chỉ đọc, do đó
thiết lập hoặc thay đổi chúng tạo ra một cảnh báo. Có thể thêm toàn cầu chỉ đọc tùy chỉnh bằng cách sử dụng
--read-global Tùy chọn CLI hoặc read_globals tùy chọn cấu hình.
Ngầm hiểu xác định toàn cầu
Luacheck có thể được định cấu hình để coi các toàn cầu được chỉ định trong một số điều kiện là
được xác định một cách ngầm định. Khi nào -d/--allow_define Tùy chọn CLI hoặc allow_define tùy chọn cấu hình là
được sử dụng, tất cả các phép gán cho hình cầu đều xác định chúng; khi nào -t/--allow_define_top Tùy chọn CLI hoặc
allow_define_top tùy chọn cấu hình được sử dụng, gán cho toàn cầu trong chức năng cấp cao nhất
phạm vi (còn được gọi là đoạn chính) xác định chúng. Một cảnh báo được tạo ra khi một
toàn cầu xác định không được truy cập ở bất kỳ đâu.
Modules
Các tệp có thể được đánh dấu là mô-đun bằng cách sử dụng -m/- mô-đun Tùy chọn CLI hoặc mô-đun tùy chọn cấu hình để
mô phỏng ngữ nghĩa của từ không dùng nữa mô-đun hàm số. Các quả địa cầu được xác định ngầm bên trong một
mô-đun được coi là một phần của giao diện của nó, không nhìn thấy bên ngoài và không được báo cáo
như không sử dụng. Không được phép gán các hình cầu khác, ngay cả với những hình cầu đã xác định.
Chưa sử dụng biến và giá trị
Luacheck tạo cảnh báo cho tất cả các biến cục bộ không sử dụng ngoại trừ một biến có tên _. Nó cũng
phát hiện các biến được đặt nhưng chưa bao giờ được truy cập hoặc được truy cập nhưng chưa bao giờ được đặt.
Chưa sử dụng giá trị và chưa được khởi tạo biến
Đối với mỗi giá trị được gán cho một biến cục bộ, Luacheck sẽ tính toán tập hợp các biểu thức mà nó
có thể được sử dụng. Cảnh báo được đưa ra cho các giá trị không sử dụng (khi không thể sử dụng một giá trị
ở bất kỳ đâu) và để truy cập các biến chưa được khởi tạo (khi không có giá trị nào có thể đạt đến
biểu hiện). Ví dụ: giá trị đoạn mã sau được gán cho foo trên dòng 1 không được sử dụng, và
biến thanh chưa được khởi tạo trên dòng 9:
local foo = expr1 ()
thanh địa phương
if điều kiện () then
foo = expr2 ()
bar = expr3 ()
khác
foo = expr4 ()
in (thanh)
cuối
trở lại foo, thanh
Trung giá trị và biến
Giá trị không sử dụng được chỉ định cho một biến cục bộ là giá trị phụ nếu nguồn gốc của nó là mục cuối cùng trên
RHS của nhiệm vụ và một giá trị khác từ mục đó được sử dụng. Giá trị phụ
thường xuất hiện khi kết quả của một lệnh gọi hàm được đưa vào các địa phương và chỉ một số
sau này được sử dụng. Ví dụ, ở đây giá trị được gán cho b là thứ yếu, giá trị được chỉ định cho c is
đã sử dụng và giá trị được chỉ định cho a đơn giản là không được sử dụng:
cục bộ a, b, c = f (), g ()
trả lại c
Một biến là thứ yếu nếu tất cả các giá trị được gán cho nó là thứ yếu. Trong đoạn mã trên,
b là một biến thứ cấp.
Có thể xóa các cảnh báo liên quan đến các biến và giá trị phụ không sử dụng bằng cách sử dụng
-s/- không-không-sử-dụng-thứ hai Tùy chọn CLI hoặc chưa sử dụng_secondaries tùy chọn cấu hình.
Bóng tờ khai
Luacheck phát hiện các khai báo của các biến cục bộ che khuất các khai báo trước đó, trừ khi
biến được đặt tên _. Nếu khai báo trước đó nằm trong cùng phạm vi với khai báo mới,
nó được gọi là xác định lại.
Lưu ý rằng nó là không cần thiết để xác định một biến cục bộ mới khi ghi đè đối số:
hàm cục bộ f (x)
cục bộ x = x hoặc "mặc định" - xấu
cuối
hàm cục bộ f (x)
x = x hoặc "default" - tốt
cuối
Kiểm soát dòng chảy và dữ liệu dòng chảy các vấn đề
Các vấn đề về luồng điều khiển và luồng dữ liệu sau được phát hiện:
· Mã và vòng lặp không thể truy cập có thể được thực thi nhiều nhất một lần (ví dụ: do một
nghỉ không điều kiện);
· Nhãn không sử dụng;
· Phân công không cân đối;
· Khối trống.
· Câu lệnh trống (dấu chấm phẩy không có câu lệnh đứng trước).
COMMAND ĐƯỜNG DÂY GIAO DIỆN
luacheck chương trình chấp nhận các tệp, thư mục và thông số kỹ thuật rock như các đối số.
· Đưa ra một tệp, luacheck sẽ kiểm tra nó.
· Được cho -, luacheck sẽ kiểm tra stdin.
· Đưa ra một thư mục, luacheck sẽ kiểm tra tất cả các tệp bên trong nó, chỉ chọn các tệp có
.mặt trăng phần mở rộng trừ khi - bao gồm-tệp tùy chọn được sử dụng. Tính năng này yêu cầu
Hệ thống tập tin Lua (được cài đặt tự động nếu LuaRocks được sử dụng để cài đặt Luacheck).
· Đưa ra một rockspec (một tệp có .rockspec gia hạn), luacheck sẽ kiểm tra tất cả các tệp với
.mặt trăng phần mở rộng được đề cập trong rockspec trong build.install.lua, build.install.bin và
build.modules bảng.
Đầu ra của luacheck bao gồm các báo cáo riêng biệt cho từng tệp đã kiểm tra và kết thúc bằng
tóm lược:
$ luacheck src
Kiểm tra cảnh báo src / bad_code.lua 5
src / bad_code.lua: 3: 16: biến không sử dụng trợ giúp
src / bad_code.lua: 3: 23: đối số độ dài biến không được sử dụng
src / bad_code.lua: 7: 10: thiết lập giới hạn biến toàn cục không theo tiêu chuẩn
src / bad_code.lua: 8: 10: biến opt trước đây được định nghĩa là một đối số trên dòng 7
src / bad_code.lua: 9: 11: truy cập hepler biến không xác định
Kiểm tra src / good_code.lua OK
Kiểm tra lỗi src / python_code.lua 1
src / python_code.lua: 1: 6: mong đợi '=' near '__future__'
Kiểm tra cảnh báo src / used_code.lua 9
src / allow_code.lua: 3: 18: đối số không dùng đến baz
src / used_code.lua: 4: 8: biến vòng lặp không sử dụng i
src / used_code.lua: 5: 13: biến không sử dụng q
src / used_code.lua: 7: 11: biến vòng lặp không sử dụng a
src / used_code.lua: 7: 14: biến vòng lặp không sử dụng b
src / used_code.lua: 7: 17: biến vòng lặp không sử dụng c
src / used_code.lua: 13: 7: giá trị được gán cho biến x không được sử dụng
src / used_code.lua: 14: 1: giá trị được gán cho biến x không được sử dụng
src / used_code.lua: 22: 1: giá trị được gán cho biến z không được sử dụng
Tổng cộng: 14 cảnh báo / 1 lỗi trong 4 tệp
luacheck thoát ra bằng 0 nếu không có cảnh báo hoặc lỗi xảy ra và với một số dương
nếu không thì.
Lệnh hàng lựa chọn
Các tùy chọn ngắn không sử dụng đối số có thể được kết hợp thành một, do đó -qqu is
tương đương với -q -q -u. Đối với các tùy chọn dài, cả hai --Lựa chọn giá trị or --option = giá trị có thể
đã sử dụng.
Các tùy chọn lấy một số đối số có thể được sử dụng nhiều lần; --phớt lờ foo --phớt lờ thanh is
tương đương với --phớt lờ foo thanh.
Lưu ý rằng các tùy chọn có thể có một số đối số, chẳng hạn như - cầu lông, không nên sử dụng
ngay lập tức trước các lập luận vị trí; được cho - cầu lông foo thanh tập tin.lua, luacheck sẽ
xem xét tất cả foo, thanh và tập tin.lua toàn cầu và sau đó hoảng sợ vì không còn tên tệp nào.
┌──────────────────────────────────── ────────────────────┐
│Option │ Ý nghĩa │
├──────────────────────────────────── ────────────────────┤
│-g | - không toàn cầu │ Lọc ra các cảnh báo liên quan đến │
│ │ biến toàn cục. │
├──────────────────────────────────── ────────────────────┤
│-u | - không sử dụng │ Lọc ra các cảnh báo liên quan đến │
│ │ các biến và giá trị không sử dụng. │
├──────────────────────────────────── ────────────────────┤
│-r | - không xác định lại │ Lọc ra các cảnh báo liên quan đến │
│ │ các biến xác định lại. │
├──────────────────────────────────── ────────────────────┤
│-a | --no-used-args │ Lọc ra các cảnh báo liên quan đến │
│ │ đối số và vòng lặp không sử dụng │
│ │ biến. │
├──────────────────────────────────── ────────────────────┤
│-s | - không-không-sử-dụng-thứ hai │ Lọc ra các cảnh báo liên quan đến │
│ │ các biến không sử dụng được đặt cùng nhau │
│ │ với những cái đã qua sử dụng. │
│ │ │
│ │ Xem giá trị phụ và biến │
├──────────────────────────────────── ────────────────────┤
│- không có bản thân │ Lọc ra các cảnh báo liên quan đến │
│ │ ngầm tự tranh luận. │
└──────────────────────────────────── ────────────────────┘
│--std │ Đặt hình cầu tiêu chuẩn. tôi có thể
│ │ là một trong số: │
│ │ │
│ │ · _G - quả cầu của Lua │
│ │ thông dịch viên luacheck │
│ │ chạy trên (mặc định); │
│ │ │
│ │ · lúa51 - quả cầu của Lua │
│ │ 5.1; │
│ │ │
│ │ · lúa52 - quả cầu của Lua │
│ │ 5.2; │
│ │ │
│ │ · lua52c - quả cầu của Lua │
│ │ 5.2 được biên dịch với │
│ │ LUA_COMPAT_ALL; │
│ │ │
│ │ · lúa53 - quả cầu của Lua │
│ │ 5.3; │
│ │ │
│ │ · lua53c - quả cầu của Lua │
│ │ 5.3 được biên dịch với │
│ │ LUA_COMPAT_5_2; │
│ │ │
│ │ · luajit - toàn cầu của │
│ │ LuaJIT 2.0; │
│ │ │
│ │ · ngx_lua - toàn cầu của │
│ │ Thoải mái │
│ │ lua-nginx-mô-đun với │
│ │ LuaJIT 2.0; │
│ │ │
│ │ · phút - giao điểm của │
│ │ hình cầu của Lua 5.1, Lua │
│ │ 5.2 và LuaJIT 2.0; │
│ │ │
│ │ · tối đa - liên hiệp các quả cầu │
│ │ trong số Lua 5.1, Lua 5.2 và │
│ │ LuaJIT 2.0; │
│ │ │
│ │ · vỡ - đã thêm hình cầu │
│ │ bởi Busted 2.0; │
│ │ │
│ │ · không ai - không có tiêu chuẩn │
│ │ hình cầu. │
│ │ │
│ │ Xem bộ of Tiêu chuẩn │
│ │ toàn cầu │
├──────────────────────────────────── ────────────────────┤
│- cầu lông [ ] ... │ Thêm hình cầu tùy chỉnh lên trên │
│ │ những cái tiêu chuẩn. │
├──────────────────────────────────── ────────────────────┤
│--read-global [ ] ... │ Thêm toàn cầu chỉ đọc. │
├──────────────────────────────────── ────────────────────┤
│--new-Gloals [ ] ... │ Đặt hình cầu tùy chỉnh. Loại bỏ │
│ │ hình cầu tùy chỉnh đã được thêm trước đó. │
├──────────────────────────────────── ────────────────────┤
│--new-read-global [ ] │ Đặt toàn cầu chỉ đọc. Loại bỏ │
│... │ hình cầu chỉ đọc được thêm vào │
│ │ trước đây. │
├──────────────────────────────────── ────────────────────┤
│-c | --tương thích │ Tương đương với --std tối đa. │
└──────────────────────────────────── ────────────────────┘
│-d | --allow-xác định │ Cho phép xác định hình cầu │
│ │ ngầm định bằng cách đặt chúng. │
│ │ │
│ │ Xem các cầu thủ được xác định rõ ràng │
├──────────────────────────────────── ────────────────────┤
│-t | --allow-xác định-top │ Cho phép xác định hình cầu │
│ │ ngầm định bằng cách đặt chúng trong │
│ │ phạm vi cấp cao nhất. │
│ │ │
│ │ Xem các cầu thủ được xác định rõ ràng │
├──────────────────────────────────── ────────────────────┤
│-m | - mô-đun │ Hạn chế khả năng hiển thị ngầm │
│ │ hình cầu được xác định cho các tệp của chúng. │
│ │ │
│ │ Xem mô-đun │
├──────────────────────────────────── ────────────────────┤
│--phớt lờ | -i [ ] │ Lọc ra các cảnh báo phù hợp với │
│... │ mẫu. │
├──────────────────────────────────── ────────────────────┤
│--cho phép | -e [ ] │ Không lọc ra các cảnh báo │
│... │ phù hợp với các mẫu. │
├──────────────────────────────────── ────────────────────┤
│--chỉ một | -o [ ] ... │ Lọc ra các cảnh báo không phù hợp │
│ │ mẫu. │
├──────────────────────────────────── ────────────────────┤
│- không nội tuyến │ Tắt các tùy chọn nội tuyến. │
├──────────────────────────────────── ────────────────────┤
│--config │ Đường dẫn đến cấu hình tùy chỉnh │
│ │ tệp (mặc định: .luacheckrc). │
├──────────────────────────────────── ────────────────────┤
│--no-config │ Không tra cứu tùy chỉnh │
│ │ tập tin cấu hình. │
├──────────────────────────────────── ────────────────────┤
│--tên tệp │ Sử dụng tên tệp khác trong đầu ra, │
│ │ để chọn cấu hình │
│ │ ghi đè và cho tệp │
│ │ lọc. │
├──────────────────────────────────── ────────────────────┤
│--loại trừ các tập tin [ ] │ Không kiểm tra các tệp có khớp với nhau │
│... │ những mô hình lấp lánh này. │
│ │ Các quả cầu đệ quy chẳng hạn như ** / *. lua │
│ │ được hỗ trợ. │
├──────────────────────────────────── ────────────────────┤
│- bao gồm-tệp [ ] │ Không kiểm tra các tệp không khớp với nhau │
│... │ những mô hình lấp lánh này. │
├──────────────────────────────────── ────────────────────┤
│--bộ nhớ đệm [ ] │ Đường dẫn đến tệp bộ đệm. (mặc định: │
│ │ .luacheckcache). Xem Bộ nhớ đệm │
├──────────────────────────────────── ────────────────────┤
│- không có bộ nhớ cache │ Không sử dụng bộ nhớ đệm. │
├──────────────────────────────────── ────────────────────┤
│-j | --công việc │ Kiểm tra các tệp song song. │
│ │ Yêu cầu LuaLane. │
└──────────────────────────────────── ────────────────────┘
│--trình định dạng │ Sử dụng định dạng tùy chỉnh. │
│ │ phải là một mô-đun │
│ │ tên hoặc một trong số: │
│ │ │
│ │ · TAP - Thử nghiệm mọi thứ │
│ │ Bộ định dạng giao thức; │
│ │ │
│ │ · JUnit - JUnit XML │
│ │ định dạng; │
│ │ │
│ │ · đồng bằng - đơn giản │
│ │ cảnh báo trên mỗi dòng │
│ │ định dạng; │
│ │ │
│ │ · mặc định - tiêu chuẩn │
│ │ định dạng. │
├──────────────────────────────────── ────────────────────┤
│-q | --Yên lặng │ Ngăn xuất báo cáo cho các tệp │
│ │ mà không có cảnh báo. │
│ │ │
│ │ · -qq - Ức chế đầu ra │
│ │ cảnh báo. │
│ │ │
│ │ · -qqq - Chỉ đầu ra │
│ │ tóm tắt. │
├──────────────────────────────────── ────────────────────┤
│--mã │ Hiển thị mã cảnh báo. │
├──────────────────────────────────── ────────────────────┤
│--các dãy │ Hiển thị các dải cột có liên quan │
│ │ đến cảnh báo. │
├──────────────────────────────────── ────────────────────┤
│--không màu │ Không nhuộm màu đầu ra. │
├──────────────────────────────────── ────────────────────┤
│-v | --phiên bản │ Hiển thị phiên bản của Luacheck và │
│ │ phụ thuộc và lối ra. │
├──────────────────────────────────── ────────────────────┤
│-h | --Cứu giúp │ Hiển thị trợ giúp và thoát. │
└──────────────────────────────────── ────────────────────┘
Patterns
Tùy chọn CLI --phớt lờ, --cho phép và --chỉ một và các tùy chọn cấu hình tương ứng cho phép lọc
cảnh báo sử dụng đối sánh mẫu trên mã cảnh báo, tên biến hoặc cả hai. Nếu một mẫu
chứa dấu gạch chéo, phần trước dấu gạch chéo khớp với mã cảnh báo và phần sau dấu gạch chéo khớp
tên biến. Ngược lại, nếu một mẫu có chứa một chữ cái hoặc dấu gạch dưới, nó sẽ khớp
tên biến. Nếu không, nó khớp với mã cảnh báo. Ví dụ:
┌─────────┬───────────────────────────────────
│Pattern │ Cảnh báo phù hợp │
├─────────┼───────────────────────────────────
│4.2 │ Các khai báo ẩn của │
│ │ lập luận hoặc xác định lại chúng. │
├─────────┼───────────────────────────────────
│. * _ │ Cảnh báo liên quan đến các biến │
│ │ với _ hậu tố. │
├─────────┼───────────────────────────────────
│4.2 /.*_ │ Các khai báo về │
│ │ đối số với _ hậu tố hoặc │
│ │ định nghĩa lại chúng. │
└─────────┴───────────────────────────────────
Trừ khi đã được cố định, các mẫu phù hợp với tên biến được cố định ở cả hai bên và
các mẫu phù hợp với mã cảnh báo được cố định ở phần đầu của chúng. Điều này cho phép một người
lọc cảnh báo theo danh mục (ví dụ: --chỉ một 1 tập trung luacheck về các cảnh báo liên quan đến toàn cầu).
bộ of Tiêu chuẩn toàn cầu
Tùy chọn CLI --stds cho phép kết hợp các bộ tích hợp được mô tả ở trên bằng cách sử dụng +. Ví dụ,
--std tối đa tương đương với --std = lua51 + lua52 + lua53. Dấu cộng đứng đầu thêm các bộ mới vào
mặc định một thay vì thay thế nó. Ví dụ, --std + bị phá sản phù hợp để kiểm tra
kiểm tra các tệp sử dụng Busted khung thử nghiệm. Các tập hợp hình cầu tùy chỉnh có thể được xác định bởi
biến đổi toàn cục tiêu chuẩn trong cấu hình. Xem custom_stds
Bộ định dạng
Tùy chọn CLI --trình định dạng cho phép chọn một định dạng tùy chỉnh cho luacheck đầu ra. Một tùy chỉnh
formatter là một mô-đun Lua trả về một hàm có ba đối số: báo cáo như được trả về bởi
luacheck mô-đun (xem báo cáo), mảng tên tệp và bảng tùy chọn. Các tùy chọn chứa
giá trị được gán cho yên tĩnh, màu sắc, hạn chế, mã số, các dãy và định dạng tùy chọn trong CLI hoặc
cấu hình. Hàm định dạng phải trả về một chuỗi.
Bộ nhớ đệm
Nếu LuaFileSystem khả dụng, Luacheck có thể lưu vào bộ nhớ cache các kết quả kiểm tra tệp. Về sau
kiểm tra, chỉ những tệp đã thay đổi kể từ lần kiểm tra cuối cùng sẽ được kiểm tra lại, cải thiện
thời gian chạy đáng kể. Thay đổi các tùy chọn (ví dụ: xác định các hình cầu bổ sung) không
làm mất hiệu lực bộ nhớ cache. Bộ nhớ đệm có thể được kích hoạt bằng cách sử dụng --bộ nhớ đệm tùy chọn hoặc bộ nhớ cache cấu hình
Lựa chọn. Sử dụng --bộ nhớ đệm không có đối số hoặc cài đặt bộ nhớ cache tùy chọn cấu hình để đúng bộ
.luacheckcache dưới dạng tệp bộ đệm. Lưu ý rằng --bộ nhớ đệm phải được sử dụng mọi lúc luacheck is
chạy, không chỉ trong lần chạy đầu tiên.
Ổn định giao diện cho biên tập viên bổ sung và công cụ
Giao diện dòng lệnh của Luacheck có thể thay đổi giữa các bản phát hành nhỏ. Bắt đầu từ 0.11.0
phiên bản, giao diện sau đây được đảm bảo ít nhất cho đến phiên bản 1.0.0 và phải
được sử dụng bởi các công cụ sử dụng đầu ra Luacheck, ví dụ như plugin trình soạn thảo.
· Luacheck nên được bắt đầu từ thư mục chứa tệp đã kiểm tra.
· Tập tin có thể được chuyển qua stdin bằng cách sử dụng - dưới dạng đối số hoặc sử dụng tệp tạm thời. Thực
tên tệp phải được chuyển bằng cách sử dụng --tên tệp tùy chọn.
· Nên sử dụng bộ định dạng trơn. Nó xuất ra một vấn đề (cảnh báo hoặc lỗi) trên mỗi dòng.
· Để có được vị trí lỗi chính xác, --các dãy tùy chọn có thể được sử dụng. Mỗi dòng bắt đầu bằng thực
tên tệp (được chuyển bằng cách sử dụng --tên tệp), theo dõi bởi : : - :,
Ở đâu là số dòng mà sự cố đã xảy ra và - is
bao gồm nhiều cột mã thông báo liên quan đến vấn đề. Đánh số bắt đầu từ 1. Nếu
--các dãy không được sử dụng, cột cuối và dấu gạch ngang không được in.
· Để nhận mã cảnh báo và mã lỗi, --mã tùy chọn có thể được sử dụng. Đối với mỗi dòng, chuỗi con
giữa các dấu ngoặc đơn chứa mã vấn đề ba chữ số, có tiền tố là E vì lỗi và W
để cảnh báo. Thiếu chuỗi con như vậy chỉ ra một lỗi nghiêm trọng (ví dụ: lỗi I / O).
· Phần còn lại của dòng là thông báo cảnh báo.
Nếu mong muốn khả năng tương thích với phiên bản Luacheck cũ hơn, đầu ra của luacheck --Cứu giúp có thể
được sử dụng để có được phiên bản của nó. Nếu nó chứa chuỗi 0. ., Nơi đang ở
ít nhất 11 và bản vá là bất kỳ số nào, giao diện được mô tả ở trên nên được sử dụng.
CẤU HÌNH FILE
luacheck cố gắng tải cấu hình từ .luacheckrc tập tin trong thư mục hiện tại. Nếu như
không tìm thấy, nó sẽ tìm nó trong thư mục mẹ và cứ tiếp tục như vậy cho đến khi
đạt đến gốc hệ thống tệp. Đường dẫn đến cấu hình có thể được đặt bằng cách sử dụng --config tùy chọn, trong trường hợp đó
nó sẽ được sử dụng trong quá trình tải đệ quy. Tải cấu hình có thể bị vô hiệu hóa bằng cách sử dụng --no-config
cờ.
Cấu hình chỉ đơn giản là một tập lệnh Lua được thực thi bởi luacheck. Nó có thể thiết lập các tùy chọn khác nhau bằng cách
gán cho toàn cầu hoặc bằng cách trả về một bảng với các tên tùy chọn làm khóa.
Config lựa chọn
┌───────────────────── ────────────────────┐
│ Tùy chọn │ Loại │ Giá trị mặc định │
├───────────────────── ────────────────────┤
│màu sắc │ Boolean │ đúng │
├───────────────────── ────────────────────┤
│mã số │ Boolean │ sai │
└───────────────────── ────────────────────┘
│định dạng │ Chuỗi hoặc hàm │ "vỡ nợ" │
├───────────────────── ────────────────────┤
│bộ nhớ cache │ Boolean hoặc chuỗi │ sai │
├───────────────────── ────────────────────┤
│việc làm │ Số nguyên dương │ 1 │
├───────────────────── ────────────────────┤
│loại trừ │ Mảng chuỗi │ {} │
├───────────────────── ────────────────────┤
│bao_files │ Mảng chuỗi │ (Bao gồm tất cả các tệp) │
├───────────────────── ────────────────────┤
│toàn cầu │ Boolean │ đúng │
├───────────────────── ────────────────────┤
│không sử dụng │ Boolean │ đúng │
├───────────────────── ────────────────────┤
│xác định lại │ Boolean │ đúng │
├───────────────────── ────────────────────┤
│used_args │ Boolean │ đúng │
├───────────────────── ────────────────────┤
│chưa sử dụng_secondaries │ Boolean │ đúng │
├───────────────────── ────────────────────┤
│tự │ Boolean │ đúng │
├───────────────────── ────────────────────┤
│tiêu chuẩn │ Chuỗi hoặc tập hợp │ "_NS" │
│ │ hình cầu tiêu chuẩn │ │
├───────────────────── ────────────────────┤
│toàn cầu │ Mảng chuỗi │ {} │
├───────────────────── ────────────────────┤
│new_globals │ Mảng chuỗi │ (Không ghi đè) │
├───────────────────── ────────────────────┤
│read_globals │ Mảng chuỗi │ {} │
├───────────────────── ────────────────────┤
│new_read_globals │ Mảng chuỗi │ (Không ghi đè) │
├───────────────────── ────────────────────┤
│compat │ Boolean │ sai │
├───────────────────── ────────────────────┤
│allow_define │ Boolean │ sai │
├───────────────────── ────────────────────┤
│allow_define_top │ Boolean │ sai │
├───────────────────── ────────────────────┤
│mô-đun │ Boolean │ sai │
├───────────────────── ────────────────────┤
│bỏ qua │ Mảng mẫu (xem │ {} │
│ │ mẫu) │ │
├───────────────────── ────────────────────┤
│cho phép │ Mảng mẫu │ {} │
├───────────────────── ────────────────────┤
│có thể │ Mảng mẫu │ (Không lọc) │
├───────────────────── ────────────────────┤
│nội tuyến │ Boolean │ đúng │
└───────────────────── ────────────────────┘
Một ví dụ về cấu hình làm cho luacheck đảm bảo rằng chỉ những quả cầu từ thiết bị di động
giao điểm của Lua 5.1, Lua 5.2, Lua 5.3 và LuaJIT 2.0 được sử dụng, cũng như tắt
phát hiện các đối số không sử dụng:
std = "tối thiểu"
bỏ qua = {"212"}
Tuỳ chỉnh bộ of toàn cầu
tiêu chuẩn tùy chọn cho phép thiết lập một tập hợp tiêu chuẩn tùy chỉnh của các hình cầu bằng cách sử dụng một bảng. Trong bảng đó,
các khóa chuỗi là toàn cầu và chuỗi trong phần mảng là toàn cầu chỉ đọc.
Ngoài ra, các tập hợp tùy chỉnh có thể được đặt tên bằng cách thay đổi toàn cục tiêu chuẩn Biến đổi. Vì
ví dụ, khi sử dụng LPEG thư viện, thật hợp lý khi truy cập các chức năng của nó một cách ngắn gọn bằng cách sử dụng
hình cầu. Trong trường hợp đó, cấu hình sau cho phép loại bỏ các kết quả xác thực sai liên quan đến
truy cập toàn cầu dễ dàng:
stds.lpeg = request "lpeg"
lpeg cục bộ = request "lpeg"
hàm cục bộ phân tích cú pháp1 (...)
- Hàm này chỉ sử dụng các hàm lpeg dưới dạng các khối cầu.
địa phương _ENV = lpeg
- luacheck: std lpeg
chữ số địa phương, dấu cách = R "09", S ""
- ...
cuối
hàm cục bộ phân tích cú pháp2 (...)
- Hàm này sử dụng các hàm lpeg cũng như các hình cầu tiêu chuẩn.
local _ENV = setmetatable ({}, {__index = function (_, k) return _ENV [k] hoặc lpeg [k] end})
- luacheck: std + lpeg
chữ số địa phương, dấu cách = R "09", S ""
số địa phương = C (chữ số ^ 1) / tấn số
- ...
cuối
Mỗi tệp và mỗi con đường ghi đè
Môi trường trong đó luacheck tải cấu hình chứa một toàn cầu đặc biệt các tập tin. Khi nào
kiểm tra một tập tin , luacheck sẽ ghi đè các tùy chọn từ cấu hình chính bằng các mục nhập
từ các tập tin[ ] và các tập tin[ ], áp dụng các mục nhập cho đường dẫn ngắn hơn trước. Vì
ví dụ, cấu hình sau chỉ bật lại tính năng phát hiện các đối số không sử dụng cho các tệp trong
src / dir, nhưng không phải cho src / dir / myfile.luavà cho phép sử dụng Busted quả cầu bên trong spec /:
std = "tối thiểu"
bỏ qua = {"212"}
tệp ["src / dir"] = {enable = {"212"}}
tệp ["src / dir / myfile.lua"] = {ignore = {"212"}}
tệp ["spec"] = {std = "+ bị phá sản"}
Lưu ý rằng các tập tin bảng hỗ trợ tự động hóa, vì vậy
files ["myfile.lua"]. ignore = {"212"}
và
files ["myfile.lua"] = {ignore = {"212"}}
là tương đương.
TRỰC TUYẾN LỰA CHỌN
Luacheck hỗ trợ thiết lập một số tùy chọn trực tiếp trong các tệp đã kiểm tra bằng cách sử dụng nội tuyến
bình luận cấu hình. Một nhận xét cấu hình nội tuyến bắt đầu bằng kiểm tra: nhãn mác,
có thể sau một số khoảng trắng. Phần nội dung của nhận xét phải có dấu phẩy được phân tách
tùy chọn, trong đó lệnh gọi tùy chọn bao gồm tên của nó cộng với các đối số được phân tách bằng dấu cách. Các
các tùy chọn sau được hỗ trợ:
┌───────────────────── ─────┐
│ Tùy chọn │ Số lượng đối số │
├───────────────────── ─────┤
│toàn cầu │ 0 │
├───────────────────── ─────┤
Không sử dụng │ 0 │
├───────────────────── ─────┤
│được xác định lại │ 0 │
├───────────────────── ─────┤
Args không sử dụng │ 0 │
├───────────────────── ─────┤
Không sử dụng thứ hai │ 0 │
├───────────────────── ─────┤
Bản thân │ 0 │
└───────────────────── ─────┘
│tương thích │ 0 │
├───────────────────── ─────┤
│ mô-đun │ 0 │
├───────────────────── ─────┤
│allow xác định │ 0 │
├───────────────────── ─────┤
│allow xác định trên cùng │ 0 │
├───────────────────── ─────┤
│std │ 1 │
├───────────────────── ─────┤
│toàn cầu │ 0+ │
├───────────────────── ─────┤
│ hình cầu mới │ 0+ │
├───────────────────── ─────┤
│read cầu tròn │ 0+ │
├───────────────────── ─────┤
│mới đọc toàn cầu │ 0+ │
├───────────────────── ─────┤
│ignore │ 0+ (không có đối số mọi thứ │
│ │ bị bỏ qua) │
├───────────────────── ─────┤
│bật │ 1+ │
├───────────────────── ─────┤
│chỉ │ 1+ │
└───────────────────── ─────┘
Các tùy chọn không có đối số có thể được bắt đầu bằng Không để đảo ngược ý nghĩa của chúng. Ví dụ
--luacheck: Không không sử dụng args. tắt các cảnh báo đối số không sử dụng.
Một phần của tệp bị ảnh hưởng bởi tùy chọn nội tuyến phụ thuộc vào nơi nó được đặt. Nếu có bất cứ gi
mã trên dòng có tùy chọn, chỉ dòng đó bị ảnh hưởng; nếu không, mọi thứ cho đến khi
kết thúc của việc đóng cửa hiện tại là. Đặc biệt, các tùy chọn nội tuyến ở đầu tệp
ảnh hưởng đến tất cả:
- luacheck: Gloals g1 g2, bỏ qua foo
local foo = g1 (g2) - Không có cảnh báo nào được phát ra.
- Chức năng không sử dụng sau không được báo cáo.
hàm cục bộ f () - luacheck: bỏ qua
- luacheck: Gloals g3
g3 () - Không có cảnh báo.
cuối
g3 () - Cảnh báo được phát ra dưới dạng tùy chọn nội tuyến xác định hàm f chỉ bị ảnh hưởng của g3.
Để kiểm soát chi tiết hơn đối với khả năng hiển thị tùy chọn nội tuyến, hãy sử dụng kiểm tra: đẩy và kiểm tra:
bật chỉ thị:
- luacheck: đẩy bỏ qua foo
foo () - Không có cảnh báo.
- luacheck: pop
foo () - Cảnh báo được phát ra.
Tùy chọn nội tuyến có thể bị vô hiệu hóa hoàn toàn bằng cách sử dụng - không nội tuyến Tùy chọn CLI hoặc nội tuyến cấu hình
tùy chọn.
KIỂM TRA MODULE
Sử dụng địa phương luacheck = yêu cầu "luacheck" nhập khẩu luacheck mô-đun. Nó chứa
các chức năng sau:
· luacheck.get_report (nguồn): Cho chuỗi nguồn, trả về dữ liệu phân tích (một bảng).
· luacheck.process_reports (báo cáo, tùy chọn): Xử lý mảng báo cáo phân tích và
áp dụng các tùy chọn. báo cáo [i] sử dụng lựa chọn, tùy chọn [i], tùy chọn [i] [1], tùy chọn [i] [2], ...
dưới dạng các tùy chọn, ghi đè nhau theo thứ tự đó. Bảng tùy chọn là một bảng có các trường
tương tự với các tùy chọn cấu hình; xem các tùy chọn. Báo cáo phân tích với trường gây tử vong bị bỏ qua.
quy trình_báo cáo trả về báo cáo cuối cùng, xem Report định dạng.
· luacheck.check_strings (nguồn, tùy chọn): Kiểm tra mảng nguồn bằng cách sử dụng các tùy chọn, trả về
báo cáo cuối kỳ. Bảng có trường gây tử vong ở trong nguồn mảng bị bỏ qua.
· luacheck.check_files (tệp, tùy chọn): Kiểm tra mảng tệp bằng cách sử dụng các tùy chọn, trả về cuối cùng
bản báo cáo. Các xử lý tệp đang mở có thể được chuyển thay vì tên tệp, trong trường hợp đó, chúng sẽ
đọc cho đến khi EOF và đóng lại.
· luacheck.get_message (sự cố): Trả về một thông báo chuỗi cho một sự cố, hãy xem Report định dạng.
luacheck._VERSION chứa phiên bản Luacheck dưới dạng một chuỗi trong CHÍNH.MINOR.PATCH định dạng.
Sử dụng luacheck như một hàm tương đương với gọi luacheck.check_files.
Report định dạng
Báo cáo cuối cùng là một loạt các báo cáo tệp cộng với các trường cảnh báo, lỗi và gây tử vong
chứa tổng số cảnh báo, lỗi và lỗi nghiêm trọng, tương ứng.
Báo cáo tệp là một loạt các vấn đề (cảnh báo hoặc lỗi). Nếu một lỗi nghiêm trọng xảy ra trong khi
kiểm tra một tệp, báo cáo của nó sẽ có gây tử vong trường chứa loại lỗi.
Một vấn đề là một bảng có trường mã cho biết loại của nó (xem cảnh báo), và các trường hàng,
cột và cột cuối trỏ đến nguồn của cảnh báo. tên trường có thể chứa tên
của biến liên quan. Các vấn đề thuộc một số loại cũng có thể có các trường bổ sung:
┌───────┬────────────────────────────────────
│ Mã │ Trường bổ sung │
├───────┼────────────────────────────────────
│011 │ msg trường chứa lỗi cú pháp │
│ │ tin nhắn. │
├───────┼────────────────────────────────────
│111 │ mô-đun trường chỉ ra rằng │
│ │ bài tập là cho một mô-đun không phải là mô-đun │
│ │ biến toàn cục. │
├───────┼────────────────────────────────────
│211 │ chức năng trường cho biết rằng │ không được sử dụng
│ │ biến là một hàm. │
├───────┼────────────────────────────────────
│4 .. │ pre_line và cột trước lĩnh vực │
│ │ chứa vị trí của │
│ │ định nghĩa bị ghi đè. │
└───────┴────────────────────────────────────
Các trường khác có thể có mặt vì lý do nội bộ.
Đây là tài liệu cho phiên bản 0.13.0 của kiểm tra, một người nói dối cho lấy.
Sử dụng luacheck trực tuyến bằng các dịch vụ onworks.net