#sorting #declaration #lint #plugin

nightly sorty

一个插件,用于检查 'extern crate', 'mod' 和 'use' 声明是否以排序格式存在

3个版本

使用旧的Rust 2015

0.1.2 2017年4月17日
0.1.1 2016年11月28日
0.1.0 2016年7月25日

#declaration中排名46

MPL-2.0许可证

16KB
208

rust-sorty

Build Status

一个lint,帮助根据风格规则排序 extern cratemoduse 声明。查看详细示例开始!我想这对用Rust编写的项目会非常有用(至少一开始是这样!)。

实际上,这应该由 rustfmt 完成,但现在它还没有这个选项。所以,这个插件会一直用到 rustfmt 能够智能地检测未排序的声明。

用法

将此添加到您的 Cargo.toml...

sorty = "0.1"

...然后将其添加到您要检查的主模块的顶部,

#![feature(plugin)]
#![plugin(sorty)]

(它可以像任何其他lint一样显示警告或错误)

#![deny(unsorted_declarations)]         // throw errors! (poor choice for styling lints)

#![warn(unsorted_declarations)]         // show warnings (default)

#![allow(unsorted_declarations)]        // stay quiet!

检查完成后,移除它,因为您将不再需要此插件!

我只是开个玩笑。如果您愿意保留它,我会非常高兴:)

注意

这是一个编译器lint,且是不稳定的。因此,请确保您正在使用最新的 nightly Rust。虽然这个lint显示了按字典顺序排序的声明输出,但它遵循一些规则

  • 带有 #[macro_use] 的内容是排序并移动到顶部的,因为宏在声明后才对周围环境可见 只有声明后,与其它内容不同。
  • pub 声明(使用 & mods)是排序并移动到底部的
  • 使用列表中的 self 被移动到左侧(其它列表项按常规排序)

此外,请注意,有一些内容目前还没有跟踪。这包括注释、空格等。

无运行时依赖