| 1 | # Sponge version |
| 2 | set --global sponge_version 1.1.0 |
| 3 | |
| 4 | # Allow to repeat previous command by default |
| 5 | if not set --query --universal sponge_delay |
| 6 | set --universal sponge_delay 2 |
| 7 | end |
| 8 | |
| 9 | # Purge entries both after `sponge_delay` entries and on exit by default |
| 10 | if not set --query --universal sponge_purge_only_on_exit |
| 11 | set --universal sponge_purge_only_on_exit false |
| 12 | end |
| 13 | |
| 14 | # Add default filters |
| 15 | if not set --query --universal sponge_filters |
| 16 | set --universal sponge_filters sponge_filter_failed sponge_filter_matched |
| 17 | end |
| 18 | |
| 19 | # Don't filter out commands that already have been in the history by default |
| 20 | if not set --query --universal sponge_allow_previously_successful |
| 21 | set --universal sponge_allow_previously_successful true |
| 22 | end |
| 23 | |
| 24 | # Consider `0` the only successful exit code by default |
| 25 | if not set --query --universal sponge_successful_exit_codes |
| 26 | set --universal sponge_successful_exit_codes 0 |
| 27 | end |
| 28 | |
| 29 | # No active regex patterns by default |
| 30 | if not set --query --universal sponge_regex_patterns |
| 31 | set --universal sponge_regex_patterns |
| 32 | end |
| 33 | |
| 34 | # Attach event handlers |
| 35 | functions --query \ |
| 36 | _sponge_on_prompt \ |
| 37 | _sponge_on_preexec \ |
| 38 | _sponge_on_postexec \ |
| 39 | _sponge_on_exit |
| 40 | |
| 41 | # Initialize empty state for the first run |
| 42 | function _sponge_install --on-event sponge_install |
| 43 | set --global _sponge_current_command '' |
| 44 | set --global _sponge_current_command_exit_code 0 |
| 45 | set --global _sponge_current_command_previously_in_history false |
| 46 | end |
| 47 | |
| 48 | # Clean up variables |
| 49 | function _sponge_uninstall --on-event sponge_uninstall |
| 50 | _sponge_clear_state |
| 51 | set --erase sponge_version |
| 52 | end |