diff options
author | ridiculousfish <corydoras@ridiculousfish.com> | 2014-02-20 10:26:57 -0800 |
---|---|---|
committer | ridiculousfish <corydoras@ridiculousfish.com> | 2014-02-20 10:26:57 -0800 |
commit | 3ab954644fb8c0997a4eeb6830e8e342de5aff8a (patch) | |
tree | 652063f3586cfe712c43cb90597dfa7c16e38335 /share/config.fish | |
parent | 64953e26fc5e2de8afdcecdca3162c95d6416d30 (diff) |
Make fish install a command_not_found handler in non-interactive uses.
Previously, fish's command_not_found handler would be installed in
__fish_config_interactive. Errors that occured early in startup (e.g. in
config.fish) or in non-interactive mode would therefore not be reported.
With this change, fish now exposes its default cnf handler as
__fish_default_command_not_found_handler . config.fish then installs a
cnfh that invokes the default. When fish goes interactive, the initial
cnfh is overwritten with a fancier one, that may in turn fall back to
invoking the default.
Diffstat (limited to 'share/config.fish')
-rw-r--r-- | share/config.fish | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/share/config.fish b/share/config.fish index 5eac39bf..455d40bb 100644 --- a/share/config.fish +++ b/share/config.fish @@ -11,6 +11,21 @@ set -g IFS \n\ \t # +# Create the default command_not_found handler +# +function __fish_default_command_not_found_handler + echo "fish: Unknown command '$argv'" >&2 +end + +# +# Hook up the default as the principal command_not_found handler +# This is likely to be overwritten in __fish_config_interactive +# +function __fish_command_not_found_handler --on-event fish_command_not_found + __fish_default_command_not_found_handler $argv +end + +# # Set default search paths for completions and shellscript functions # unless they already exist # |