aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAkshay <[email protected]>2022-02-05 05:44:48 +0000
committerAkshay <[email protected]>2022-02-05 05:44:48 +0000
commit99bdafa7b98e478b5375db2d606409aa29150bcd (patch)
tree1b242ef6849b0dc8e67e2f525939c04b2c86f5fd
parentade09b4d172ff649b716a05ce597d2da864a3623 (diff)
new subcommand: statix-listfeat/list-lints
produces a list of lints with their error codes, handy for statix-explain or configuring the `disabled` array in .statix.toml
-rw-r--r--bin/src/config.rs5
-rw-r--r--bin/src/lib.rs1
-rw-r--r--bin/src/list.rs14
-rw-r--r--bin/src/main.rs6
4 files changed, 24 insertions, 2 deletions
diff --git a/bin/src/config.rs b/bin/src/config.rs
index 29b6c9e..0f09618 100644
--- a/bin/src/config.rs
+++ b/bin/src/config.rs
@@ -31,6 +31,8 @@ pub enum SubCommand {
31 Explain(Explain), 31 Explain(Explain),
32 /// Dump a sample config to stdout 32 /// Dump a sample config to stdout
33 Dump(Dump), 33 Dump(Dump),
34 /// List all available lints
35 List(List),
34} 36}
35 37
36#[derive(Parser, Debug)] 38#[derive(Parser, Debug)]
@@ -205,6 +207,9 @@ pub struct Explain {
205#[derive(Parser, Debug)] 207#[derive(Parser, Debug)]
206pub struct Dump {} 208pub struct Dump {}
207 209
210#[derive(Parser, Debug)]
211pub struct List {}
212
208#[derive(Debug, Copy, Clone)] 213#[derive(Debug, Copy, Clone)]
209pub enum OutFormat { 214pub enum OutFormat {
210 #[cfg(feature = "json")] 215 #[cfg(feature = "json")]
diff --git a/bin/src/lib.rs b/bin/src/lib.rs
index 8200347..e814667 100644
--- a/bin/src/lib.rs
+++ b/bin/src/lib.rs
@@ -5,6 +5,7 @@ pub mod err;
5pub mod explain; 5pub mod explain;
6pub mod fix; 6pub mod fix;
7pub mod lint; 7pub mod lint;
8pub mod list;
8pub mod session; 9pub mod session;
9pub mod traits; 10pub mod traits;
10 11
diff --git a/bin/src/list.rs b/bin/src/list.rs
new file mode 100644
index 0000000..4fe3039
--- /dev/null
+++ b/bin/src/list.rs
@@ -0,0 +1,14 @@
1pub mod main {
2 use crate::err::StatixErr;
3
4 use lib::LINTS;
5
6 pub fn main() -> Result<(), StatixErr> {
7 let mut lints = (&*LINTS).clone();
8 lints.as_mut_slice().sort_by(|a, b| a.code().cmp(&b.code()));
9 for l in lints {
10 println!("W{:02} {}", l.code(), l.name());
11 }
12 Ok(())
13 }
14}
diff --git a/bin/src/main.rs b/bin/src/main.rs
index be79bb8..ebd230e 100644
--- a/bin/src/main.rs
+++ b/bin/src/main.rs
@@ -1,9 +1,10 @@
1use clap::Parser; 1use clap::Parser;
2
3#[rustfmt::skip]
2use statix::{ 4use statix::{
3 config::{Opts, SubCommand}, 5 config::{Opts, SubCommand},
4 dump,
5 err::StatixErr, 6 err::StatixErr,
6 explain, fix, lint, 7 lint, fix, explain, dump, list,
7}; 8};
8 9
9fn _main() -> Result<(), StatixErr> { 10fn _main() -> Result<(), StatixErr> {
@@ -14,6 +15,7 @@ fn _main() -> Result<(), StatixErr> {
14 SubCommand::Single(config) => fix::main::single(config), 15 SubCommand::Single(config) => fix::main::single(config),
15 SubCommand::Explain(config) => explain::main::main(config), 16 SubCommand::Explain(config) => explain::main::main(config),
16 SubCommand::Dump(_) => dump::main::main(), 17 SubCommand::Dump(_) => dump::main::main(),
18 SubCommand::List(_) => list::main::main(),
17 } 19 }
18} 20}
19 21