When a configuration file is modified, bacon automatically reloads its config. So you don't need to quit/relaunch when you add a new job, add a key-binding, change the allowed lints of clippy, etc. - Fix #29
Hit n to launch the nextest job.
It's a default job, but you may define your own one by specifying analyzer = "nextest" in the job entry.
Internally, this is supported by a new analyzer framework which will allow easier analysis updates or addition of analysis for other tools (or languages).
Fix #196
If you're running a test or nextest job and you want only the failing test to be retried, hit f.
If you want all tests to be executed again, hit esc.
Fix #214
- grace period (by default 5ms) after a file event before the real launch of the command and during which other file events may be disregarded. Helps when saving a file changes several ones (eg backup then rename).
- new
exportsstructure in configuration. Newanalysisexport bound by default toctrl-e. The old syntax defining locations export is still supported but won't appear in documentations anymore. - recognize panic location in test - Fix #208
- lines to ignore can be specified as a set of regular expressions in a
ignored_linesfield either in the job or at the top of the prefs or bacon.toml - Fix #223 toggle-backtraceaccepts an optional level:toggle-backtrace(1)ortoggle-backtrace(full)- Experimental - Fix #210- configuration paths can be passed in
BACON_PREFSandBACON_CONFIGenv vars - Fix #76
- fix changing wrapping mode not always working in raw output mode - Fix #234
With show_changes_count=true, you can see the number of file changes that occurred since last job start.
- With
on_change_strategy = "kill_then_restart", the current job is immediately killed and a new job restarted. This is the behavior that bacon had before this PR. It has the downside of never allowing any job to complete if you're always changing files and the job is just a little too long to finish between changes. - With
on_change_strategy = "wait_then_restart"(which is the new default, so you can omit it), bacon waits for the job to finish before restarting it. This is probably much better when the jobs aren't instant and you want to continue changing files while it's computing.
The on_change_strategy can be defined in the global prefs, in the project settings, and even for a specific job.
- until now, when there was no
bacon.tomlfile, the default one was applied, overriding the settings ofprefs.toml. This is no longer the case: this default file is now applied beforeprefs.toml(which overrides it) - Fix #157 killjob parameter - Thanks @pcapriotti
extraneous_argsjob parameter - Thanks @TheTollingBell- pause/unpause bound to 'p' - Fix #194
- fix failure to recognize location in test compilation output - Fix #190
- update dependencies (especially locked ones) to fix compilation on nightly
- new
{context}possible part for exported locations, originally designed for bacon-ls but available for other purposes - Thanks @crisidev
- default binding for 'c' in bacon.toml is now the new 'clippy-all' job which does what the old 'clippy' job was doing. 'clippy' job changed to not run on all targets. Default bacon.toml explain how to bind 'c' to clippy instead of 'clippy-all' - Fix #167
- expand env vars in job command unless the job specifies
expand_env_vars = false- Fix #181 - some file events filtered out from watch (feedback welcome, especially if you notice some failures to recompute)
- parse test results even when tests are run with
-q/--quiet- Thanks @narpfel
on_successtriggered with warning or errors depending onallow_warningsandallow_failures- Fix #179--no-help-lineoption. This is experimental and may be removed depending on feedback and future additions to this line - Thanks @danielwolbach
- insert features related arguments before the -- when there's some - Fix #171
- fix offset in Windows terminal - Fix #175
- better
--helpwith examples and main shortcuts - rewriten execution engine
- update dependencies to fix bacon not compiling on nightly - Fix #168
- fix output not cleared when cargo is in quiet mode and there's nothing - Fix #131
- F5 now clears the output before running the job (now bound to
refreshinternal) - new optional
backgroundjob parameter, should be set tofalsefor never ending jobs - Fix #161
- fix mouse wheel scrolling not working on Windows - Fix #153 - Thanks @Adham-A
- detect locations in test failures, thus enabling jumps to those failures
- more relevant suggestions in help line
- add a default job for running examples
- fix some scroll problem, especially in reverse - Fix #86
- better
--help
- fix warning summary sometimes confused with a warning - Fix #149
- allow defining env vars for jobs - Fix #145
- accept bacon.toml file at workspace level - Fix #141
- export format and path can now be configured
- default export format includes error/warning summary (nvim-bacon has been updated in parallel) - Fix #127
- fix output non scrollable when non parsable
- fix test non parsed when styled and sent to stdout instead of stderr - Fix #137
- color rendering of cargo test - Fix #124
- By default, "src", "tests", "benches", "examples" are now watched - Fix #119
default_watchbool job parameter - Fix #92
- watch "examples" directory in default run job
- fix warnings not recognized on Windows - Fix #70 - Thanks @crillon
- remove keybindings from default bacon.toml - Fix #116
- more consistent "pass!" - Thanks @zolrath
- fix a dependency compilation problem - Fix #112
- change default value of 'wrap' setting to true
--offlineexperimental launch argument, prevents bacon (but not jobs) from accessing the network. Downside is a potentially less relevant list of watched files and directories - Fix #110
- new
allow_failuresjob parameter - Fix #99 reruninternal bound by default to F5 - Fix #105
Major feature: The global prefs.toml and the local bacon.toml file now have the same properties, the local bacon.toml overriding the global prefs.toml file. Among the consequences: you can have a list of default global jobs; you can set a different preferences (eg wrapping, summary, etc.) for a specific repository. The default configuration files and the recommended best practices are unchanged - Fix #101
- doesn't launch job when the modified file is excluded by gitignore rules - Fix #32
- remove double-dash from default run configuration - Fix #96
- capture output of "should panic" tests - Fix #95
- fix a compilation problem - Fix #94
- fix wrong scrollbar in several cases of wrapping
- fix inability to scroll to last line sometimes
- fix a compilation problem on Window - Thanks @Stargateur - Fix #87
- define a new
allow_warningsjob setting. When it's true, the job is considered successful even when there are warnings. This is default on therunjob, which means thecargo runoutput is displayed even when there are warnings - Fix #81 - allow
cargo --prefsto be ran from outside cargo projects - Fix #84
- update some dependencies
- Locations exported in .bacon-locations now made absolute so that IDE plugins don't have to know the package's root
- job cancelling now works on unresponsive jobs too. This is a quite heavy change as the current implementation involves bringing in async and it's not 100% clean but it solves a major problem, further improvements could be welcome - Fix #78 - Thanks @nolanderc
- you can refer to cargo aliases by prefixing jobs with
alias:, either when setting up keybindings, defaults, or when launching bacon. Example:bacon alias:qto launch the cargo task aliased asq- Fix #77
Major feature:
The export-locations argument (shortened in -e) generates a .bacon-locations file which can be used by IDE plugins.
A plugin has been made for neovim: nvim-bacon and other ones would be welcome.
Minor changes:
- wrapping now applies to all outputs, even non interpreted ones like the output of
cargo run.
- fix summary of warnings counted as warning
- It's now possible to configure key bindings in the prefs.toml file. Those key bingings can trigger internal actions (scrolling, toggling, quitting) or jobs (for example you can launch
cargo teston thetkey. - Fix #52
- help page, listing all key-bindings
- a job is said to be successful when there's no error, test failure or warning. When a job is successful, its output is displayed by bacon. This makes it possible to have a
cargo runjob, for example. - it's possible to define an action to run when a job is successful. For example you can launch a
cargo doc --openjob on a key, and have bacon switch to the previous job with theon_success = "backtrigger so that you don't open a browser page on every change - arguments given after
--are given to the job - Fix #67 - there's a web documentation site now, you should have a look: https://dystroy.org/bacon
Minor changes:
- fix character being lost behind scrollbar on wrapping
- replaced argh with clap for launch arg parsing. The
--helppresentation is thus different.bacon -hnow supported.
- fix missing output of "no_run" doctests - Fix #64
- restrict naming of jobs to [\w-]+ regex (you were unlikely to use other chars due to the TOML format anyway)
- fix inability to deal with some inter-member dependencies on Windows - Fix #59 - Thanks @jDomantas
- fix compilation broken due to change in anyhow 1.0.49 - Fix #63
- add the "clippy-all" default job - Thanks @rukai
- alpha sort the table outputted by
bacon --list-jobs- Thanks @rukai
- solve a dependency build problem - Fix #55
- propose to toggle backtraces when suggestion is found in cargo's output
- move to more recent versions of some crates - Fix #51
bacon --list-jobs(orbacon -l) lists all available jobs
- recognize doc test output - Fix #49
- display 4 spaces for tabs - Fix #50
- the default conf now contains a [doc] job
--all-featureslaunch option
- fix wrong version number in bacon.log
It's possible to define directories to watch in the bacon.toml config file. For example, by default the test job watches the tests directory if it exists - Thanks @SafariMonkey
check-alltarget now checks all - Fix #27--no-default-featuresand--features- Fix #31
Revert standard job to ignore tests because compilation with them is too slow. A new default job is added.
Don't consider test fails as command fails (ie display the count of test fails in bacon test instead of command error)
If the job's command returns an error code and no error was read in the output, bacon now displays the output and the error code instead of letting the user think there's no error
- vim key bindings can be enabled in prefs
- default job is now
cargo check --teststo check the code for tests compiles too (without running them)
- nothing new... so it's stable enough to be tagged 1.0
bacon testshows test failures - Fix #3 - Note that you need to remove then rebuild your bacon.toml file to use this new job
- "reverse" option allows having the focus on bottom - Fix #19
- initial compilation autoscroll based on scroll position - Fix #22
- remove flickering
- fix bacon ending with an error when prefs file is missing
bacon --prefsshows or creates a prefs file which can be changed to defined default display settings (currently "summary" and "wrap")
bacon --initcreates a defaultbacon.tomlfile which can be customized to add jobs or change the standard ones- bacon launch arguments changed to ease use of customized jobs
- fix report only taking the first package into account (for workspaces)
- fix some regressions in error and warning detection
- reduce useless redraws during computation
- make it possible to watch only part of the sources: the passed directory (or the current one), when not a package directory (i.e. not containing a Cargo.toml file), will be the one watched - Thanks @nikhilmitrax and @jyn514 for their help
- logo - Thanks @petervaro
- line wrapping (and rewrapping on resize)
- when quitting bacon, kill
cargo checkif running
- better scroll position after toggling summary mode or resizing
- space key now usable for page down
- keep lines with location in summary mode - Fix #11
- allow scrolling the report (arrow keys, page keys, home & end keys, mouse wheel) - Fix #6
- log file renamed to 'bacon.log' to avoid collisions
- initial execution is displayed raw before report computation - Fix #8
- initial execution can be interrupted, scrolled - Fix #12
- add the summary mode
- also watches Cargo.toml
Initial version