- allow defining
default_watch
andwatch
at global level, so that they apply to all jobs unless overridden.
- "config loaded" message always automatically disappears after a few seconds
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
exports
structure in configuration. Newanalysis
export 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_lines
field either in the job or at the top of the prefs or bacon.toml - Fix #223 toggle-backtrace
accepts an optional level:toggle-backtrace(1)
ortoggle-backtrace(full)
- Experimental - Fix #210- configuration paths can be passed in
BACON_PREFS
andBACON_CONFIG
env 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.toml
file, 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 kill
job parameter - Thanks @pcapriotti
extraneous_args
job 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_success
triggered with warning or errors depending onallow_warnings
andallow_failures
- Fix #179--no-help-line
option. 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
--help
with 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
refresh
internal) - new optional
background
job parameter, should be set tofalse
for 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_watch
bool 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
--offline
experimental 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_failures
job parameter - Fix #99 rerun
internal 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_warnings
job setting. When it's true, the job is considered successful even when there are warnings. This is default on therun
job, which means thecargo run
output is displayed even when there are warnings - Fix #81 - allow
cargo --prefs
to 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:q
to 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 test
on thet
key. - 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 run
job, for example. - it's possible to define an action to run when a job is successful. For example you can launch a
cargo doc --open
job on a key, and have bacon switch to the previous job with theon_success = "back
trigger 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
--help
presentation is thus different.bacon -h
now 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-features
launch 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-all
target now checks all - Fix #27--no-default-features
and--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 --tests
to check the code for tests compiles too (without running them)
- nothing new... so it's stable enough to be tagged 1.0
bacon test
shows 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 --prefs
shows or creates a prefs file which can be changed to defined default display settings (currently "summary" and "wrap")
bacon --init
creates a defaultbacon.toml
file 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 check
if 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