Index: Cargo.toml ================================================================== --- Cargo.toml +++ Cargo.toml @@ -10,20 +10,27 @@ exclude = [ ".fossil-settings", ".efiles", ".fslckout", "www", + "bacon.toml", "rustfmt.toml" ] rust-version = "1.64" [features] default = ["inline-more"] inline-more = [] [dependencies] -indexmap = { version = "2.5.0" } +indexmap = { version = "2.6.0" } parking_lot = { version = "0.12.3" } [package.metadata.docs.rs] rustdoc-args = ["--generate-link-to-definition"] +[lints.clippy] +all = { level = "warn", priority = -1 } +pedantic = { level = "warn", priority = -1 } +nursery = { level = "warn", priority = -1 } +cargo = { level = "warn", priority = -1 } + Index: bacon.toml ================================================================== --- bacon.toml +++ bacon.toml @@ -1,125 +1,109 @@ # This is a configuration file for the bacon tool # -# Bacon repository: https://github.com/Canop/bacon # Complete help on configuration: https://dystroy.org/bacon/config/ -# You can also check bacon's own bacon.toml file -# as an example: https://github.com/Canop/bacon/blob/main/bacon.toml - -# For information about clippy lints, see: -# https://github.com/rust-lang/rust-clippy/blob/master/README.md - -#default_job = "check" -default_job = "clippy-all-pedantic" +# +# You may check the current default at +# https://github.com/Canop/bacon/blob/main/defaults/default-bacon.toml + +default_job = "clippy-all" +env.CARGO_TERM_COLOR = "always" [jobs.check] -command = ["cargo", "check", "--color", "always"] +command = ["cargo", "check"] need_stdout = false [jobs.check-all] -command = ["cargo", "check", "--all-targets", "--color", "always"] +command = ["cargo", "check", "--all-targets"] need_stdout = false # Run clippy on the default target [jobs.clippy] -command = [ - "cargo", "clippy", - "--color", "always", -] +command = ["cargo", "clippy"] need_stdout = false # Run clippy on all targets # To disable some lints, you may change the job this way: # [jobs.clippy-all] # command = [ # "cargo", "clippy", # "--all-targets", -# "--color", "always", # "--", # "-A", "clippy::bool_to_int_with_if", # "-A", "clippy::collapsible_if", # "-A", "clippy::derive_partial_eq_without_eq", # ] # need_stdout = false [jobs.clippy-all] -command = [ - "cargo", "clippy", - "--all-targets", - "--color", "always", -] -need_stdout = false - -[jobs.clippy-pedantic] -command = [ - "cargo", "clippy", - "--color", "always", - "--", - "-Wclippy::all", - "-Wclippy::pedantic", - "-Wclippy::nursery", - "-Wclippy::cargo" -] -need_stdout = false - -[jobs.clippy-all-pedantic] -command = [ - "cargo", "clippy", - "--all-targets", - "--color", "always", - "--", - "-Wclippy::all", - "-Wclippy::pedantic", - "-Wclippy::nursery", - "-Wclippy::cargo" -] +command = ["cargo", "clippy", "--all-targets"] need_stdout = false # This job lets you run # - all tests: bacon test # - a specific test: bacon test -- config::test_default_files # - the tests of a package: bacon test -- -- -p config [jobs.test] +command = ["cargo", "test"] +need_stdout = true + +[jobs.nextest] command = [ - "cargo", "test", "--color", "always", - "--", "--color", "always", # see https://github.com/Canop/bacon/issues/124 + "cargo", "nextest", "run", + "--hide-progress-bar", "--failure-output", "final" ] need_stdout = true +analyzer = "nextest" [jobs.doc] -command = ["cargo", "doc", "--color", "always", "--no-deps"] +command = ["cargo", "doc", "--no-deps"] need_stdout = false # If the doc compiles, then it opens in your browser and bacon switches # to the previous job [jobs.doc-open] -command = ["cargo", "doc", "--color", "always", "--no-deps", "--open"] +command = ["cargo", "doc", "--no-deps", "--open"] need_stdout = false on_success = "back" # so that we don't open the browser at each change # You can run your application and have the result displayed in bacon, -# *if* it makes sense for this crate. -# Don't forget the `--color always` part or the errors won't be -# properly parsed. -# If your program never stops (eg a server), you may set `background` -# to false to have the cargo run output immediately displayed instead -# of waiting for program's end. +# if it makes sense for this crate. [jobs.run] command = [ "cargo", "run", - "--color", "always", # put launch parameters for your program behind a `--` separator ] need_stdout = true allow_warnings = true background = true + +# Run your long-running application (eg server) and have the result displayed in bacon. +# For programs that never stop (eg a server), `background` is set to false +# to have the cargo run output immediately displayed instead of waiting for +# program's end. +# 'on_change_strategy' is set to `kill_then_restart` to have your program restart +# on every change (an alternative would be to use the 'F5' key manually in bacon). +# If you often use this job, it makes sense to override the 'r' key by adding +# a binding `r = job:run-long` at the end of this file . +# A custom kill command such as the one suggested below is frequently needed to kill +# long running programs (uncomment it if you need it) +[jobs.run-long] +command = [ + "cargo", "run", + # put launch parameters for your program behind a `--` separator +] +need_stdout = true +allow_warnings = true +background = false +on_change_strategy = "kill_then_restart" +# kill = ["pkill", "-TERM", "-P"]' # This parameterized job runs the example of your choice, as soon # as the code compiles. # Call it as # bacon ex -- my-example [jobs.ex] -command = ["cargo", "run", "--color", "always", "--example"] +command = ["cargo", "run", "--example"] need_stdout = true allow_warnings = true # You may define here keybindings that would be specific to # a project, for example a shortcut to launch a specific job.