Clippy — это «коллекция линтов, чтобы поймать общие ошибки и улучшить ваш код ржавчины». 💪 Но по какой-то причине Clippy выглядит как скрытое сокровище внутри груз
команда. Я нашел это случайным, проверяя код Ороген орудие труда.
Как я могу получить Clippy?
Теперь Clippy внутри грузовик
Но не указан, когда вы запускаете груз --help
команда. То же самое происходит с Cargo FMT
Чтобы отформатировать свой код, может быть, есть больше пасхальных яиц внутри грузовик
.
Кроме того, есть Руководство о том, как добавить Clippy
К грузу, если это не присутствует в вашем CLI.
И что делает Clippy?
Как любые льмина, Clippy имеет список предупреждений, как Manual_memcpy :
What it does Checks for for-loops that manually copy items between slices that could be optimized by having a memcpy. Why is this bad It is not as fast as a memcpy. Example for i in 0..src.len() { dst[i + 64] = src[i]; } Could be written as: dst[64..(src.len() + 64)].clone_from_slice(&src[..]);
И длинный список ошибок Lint здесь Отказ
Как запустить эту команду?
Clippy создает ваш код, а затем запускает Linter, поэтому Clippy получает те же аргументы, что и Cargo Check
подкоманды.
cargo clippy # Run in the default package(s). cargo clippy --release # Run in release mode cargo clippy --workspace # Checks the packages in the monorepo cargo build --package myPkgName # An specific page
Затем, после -
Вы можете добавить аргументы для самой уплотнения:
RUSTFLAGS="-Dwarnings" cargo clippy -- -D warnings
С этим аргументом задание сборки потерпит неудачу при встречении предупреждений. Rustflags = "- Dwarnings"
Переменная среды требуется, чтобы получить этот эффект, но readme не упоминает об этом.
Пользовательская настройка
Вы можете настроить правила Lint в файл, называемым clippy.toml
, например Вы можете повернуть педантично
правила:
#![deny(clippy::pedantic)]
Эти правила содержат несколько очень агрессивных линтов, склонных к ложным положительным словам. 🤭
Вы можете проверить больше примеров здесь Отказ
Лучший конфигурацию для CI проверяет формат кода, затем перекликается в поведение кода, и, наконец, запустив тесты, которые вы написали:
# set env RUSTFLAGS="-Dwarnings" cargo fmt --workspace -- --check cargo clippy --workspace -- -D warnings cargo test --workspace
Это все! И … Разве это не потрясающе?
Чтобы потратить минуту и использовать инструмент Lint, на мой взгляд, является одним из тех вещей, которые отмечают разницу и делает ваш код профессиональным, чистым и исполнителем.
Если вы их не используете, я призываю вас начать сейчас! Там есть много базовых гидов.
Если вы любите их использовать, теперь вы знаете скрытый новый трюк (чувствует себя хорошо, верно?)
Скажи мне, что ты думаешь!
Вы когда-нибудь нашли или реализуете полезные инструменты в Rust? 🦀 Вы улучшили свой код с помощью Clippy?
Расскажи мне об этом в комментариях!
Оригинал: «https://dev.to/cloudx/rust-and-the-hidden-cargo-clippy-2a2e»