fish-shell/tests/checks
Fabian Homborg 340de73172 Call "fish_command_not_found" if a command wasn't found
Previously, when a command wasn't found, fish would emit the
"fish_command_not_found" *event*.

This was annoying as it was hard to override (the code ended up
checking for a function called `__fish_command_not_found_handler`
anyway!), the setup was ugly,
and it's useless - there is no use case for multiple command-not-found handlers.

Instead, let's just call a function `fish_command_not_found` if it
exists, or print the default message otherwise.

The event is completely removed, but because a missing event is not an error
(MEISNAE in C++-speak) this isn't an issue.

Note that, for backwards-compatibility, we still keep the default
handler function around even tho the new one is hard-coded in C++.

Also, if we detect a previous handler, the new handler just calls it.

This way, the backwards-compatible way to install a custom handler is:

```fish
function __fish_command_not_found_handler --on-event fish_command_not_found
    # do a little dance, make a little love, get down tonight
end
```

and the new hotness is

```fish
function fish_command_not_found
    # do the thing
end
```

Fixes #7293.
2020-09-06 11:15:54 +02:00
..
broken-config/fish Port config tests to littlecheck 2019-06-25 22:31:06 +02:00
abbr.fish Reindent functions to remove useless quotes 2020-03-09 19:46:43 +01:00
alias.fish alias: Escape the first word again 2020-07-27 17:19:44 +02:00
andandoror.fish Remove duplicated test 2020-09-04 16:30:13 +02:00
andor.fish Reindent functions to remove useless quotes 2020-03-09 19:46:43 +01:00
argparse.fish argparse: Only print stacktrace when it's an error in argparse usage 2020-06-17 20:05:48 +02:00
bad-option.fish Fix typo in bad options test 2020-02-08 13:30:48 +01:00
basic.fish Let command, jobs and type take --query instead of --quiet 2020-09-04 16:55:09 +02:00
bind.fish Port bind tests to littlecheck 2019-06-26 21:19:40 +02:00
braces.fish Reindent functions to remove useless quotes 2020-03-09 19:46:43 +01:00
broken-config.fish Port config tests to littlecheck 2019-06-25 22:31:06 +02:00
builtinbuiltin.fish Port some smaller tests to littlecheck 2020-02-08 09:31:49 +01:00
caller-observer.fish Fix up --on-job-exit caller 2020-02-08 16:23:25 -08:00
cd.fish Tests: Don't remove a parent of $PWD 2020-01-30 17:34:48 +01:00
check-all-fish-files.fish Add check to test all fish files with -n 2020-02-26 19:15:50 +01:00
cmdsub-limit.fish Shorten set --show output 2020-04-26 08:49:01 +02:00
colon-delimited-var.fish Clean up how PATH and CDPATH munging occurs 2019-11-02 16:48:08 -07:00
command-1.fish Port most of the invocation tests to littlecheck 2019-06-25 20:56:29 +02:00
command-2.fish Port most of the invocation tests to littlecheck 2019-06-25 20:56:29 +02:00
command-not-found.fish Call "fish_command_not_found" if a command wasn't found 2020-09-06 11:15:54 +02:00
command-vars-persist.fish Port most of the invocation tests to littlecheck 2019-06-25 20:56:29 +02:00
complete.fish Remove redundant expect tests 2020-06-07 14:53:17 -07:00
complete_directories.fish Revert complete_directories change 2020-03-17 21:45:49 +01:00
contains_opt.fish Reindent functions to remove useless quotes 2020-03-09 19:46:43 +01:00
count.fish Port count test to littlecheck 2019-06-26 21:19:40 +02:00
deep-cmdsub.fish Add a test for deep command substitutions 2020-01-18 11:50:50 -08:00
directory-redirect.fish Fix tests 2020-01-19 15:07:06 +01:00
disown-parent.fish Add a tricky test to verify disowning an in-flight job 2019-12-08 11:44:21 -08:00
empty.fish Run fish_indent on all our fish scripts 2020-01-13 20:34:22 +01:00
env.fish Correctly mark a node when erasing an exported variable 2019-06-28 11:22:49 -07:00
eval.fish Rationalize $status and errors 2020-01-25 17:28:41 -08:00
exec.fish Reindent functions to remove useless quotes 2020-03-09 19:46:43 +01:00
exit-status-with-closing-stderr.fish Run fish_indent on all our fish scripts 2020-01-13 20:34:22 +01:00
expansion.fish tests: Remove leftover reference to "../test/root/bin/fish" 2020-03-28 15:46:47 +01:00
fds.fish Correctly handle "self fd redirections" 2019-12-13 16:51:49 -08:00
features-nocaret1.fish Port most of the invocation tests to littlecheck 2019-06-25 20:56:29 +02:00
features-nocaret2.fish Port most of the invocation tests to littlecheck 2019-06-25 20:56:29 +02:00
features-nocaret3.fish Port most of the invocation tests to littlecheck 2019-06-25 20:56:29 +02:00
features-nocaret4.fish Port most of the invocation tests to littlecheck 2019-06-25 20:56:29 +02:00
features-nocaret5.fish Readd ^&1 redirection 2020-02-14 20:28:46 +01:00
features-qmark1.fish Port qmark1 test to littlecheck 2019-06-25 22:31:06 +02:00
features-qmark2.fish Port most of the invocation tests to littlecheck 2019-06-25 20:56:29 +02:00
features-string-backslashes-off.fish tests, CHANGELOG: regex-easyesc 2019-08-13 22:56:31 -07:00
features-string-backslashes.fish tests, CHANGELOG: regex-easyesc 2019-08-13 22:56:31 -07:00
fish_add_path.fish Add fish_add_path, a simple way to add to $PATH 2020-05-29 20:51:05 +02:00
for.fish Don't overwrite unrelated variables with for-loop-variables 2020-01-08 09:10:14 +01:00
function-definition.fish Properly print leading comments and indentation in functions 2020-01-03 14:40:28 -08:00
function.fish [tests] Fix test to reflect whitespace changes to error message 2020-06-25 23:19:44 -05:00
functions.fish Reindent functions to remove useless quotes 2020-03-09 19:46:43 +01:00
history.fish Port history tests to littlecheck 2020-02-07 20:53:20 +01:00
indent.fish fish_indent: preserve semis in if and while conditions 2020-08-17 17:40:28 +02:00
init-command-2.fish Port most of the invocation tests to littlecheck 2019-06-25 20:56:29 +02:00
init-command-mix-ordering.fish Port most of the invocation tests to littlecheck 2019-06-25 20:56:29 +02:00
init-command-mix.fish Port most of the invocation tests to littlecheck 2019-06-25 20:56:29 +02:00
init-command.fish Port most of the invocation tests to littlecheck 2019-06-25 20:56:29 +02:00
init-unreadable-cwd.fish Ignore unreadable cwd error harder 2020-02-14 20:09:07 +01:00
invocation.fish Move the invocation checks to invocation.fish 2020-04-04 13:31:48 +02:00
job-control-noninteractive.fish Bravely remove reclaim... param from continue_job, and rework tcsetpgrp calls 2020-07-27 14:51:37 -07:00
job-control-not-a-tty.fish terminal_maybe_give_to_job to stop returning error on ENOTTY 2020-04-18 16:26:54 -07:00
job-ids.fish tests/job-ids: Wait for job to die 2020-01-25 14:06:34 +01:00
jobs.fish tests: jobs: Sleep more 2020-08-08 16:35:08 +02:00
line-continuation.fish Reformat fish scripts with escaped newline changes to fish_indent 2020-03-15 21:01:11 +01:00
line-number.fish argparse: Only print stacktrace when it's an error in argparse usage 2020-06-17 20:05:48 +02:00
locale.fish Reindent functions to remove useless quotes 2020-03-09 19:46:43 +01:00
loops.fish Shorten set --show output 2020-04-26 08:49:01 +02:00
math.fish math: Add bitwise and/or functions 2020-08-26 17:48:58 +02:00
no-execute.fish Don't time --no-execute 2020-02-17 11:39:53 +01:00
pipeline-pgroup.fish Disable flaky pipeline-pgroup test 2020-05-07 21:19:28 +02:00
pipestatus.fish Reindent functions to remove useless quotes 2020-03-09 19:46:43 +01:00
printf.fish printf: Don't print an error if not given an argument 2020-05-18 20:48:36 +02:00
psub.fish Reindent functions to remove useless quotes 2020-03-09 19:46:43 +01:00
random.fish Reindent functions to remove useless quotes 2020-03-09 19:46:43 +01:00
rc-returned.fish Port most of the invocation tests to littlecheck 2019-06-25 20:56:29 +02:00
read.fish checks/read: Print maximum if we fail to read it 2020-06-13 19:53:21 +02:00
realpath.fish Force symlink creation in realpath tests 2019-12-18 12:31:24 -06:00
redirect.fish Add test for redirection to variable 2020-07-14 20:55:38 +02:00
scoping.fish Reindent functions to remove useless quotes 2020-03-09 19:46:43 +01:00
self-signal-usr1.fish Stop storing block_io in job_t 2019-12-11 16:34:20 -08:00
set.fish Return no status from successful variable assignments 2020-08-05 12:23:49 -07:00
setenv.fish Port setenv tests to littlecheck 2019-07-09 10:02:50 -07:00
sigint.fish Add a test that nohup works 2020-08-10 12:26:30 -07:00
sigint2.fish Reindent functions to remove useless quotes 2020-03-09 19:46:43 +01:00
signal.fish Purge remnants of process expansion, document {fish,last}_pid 2020-05-16 11:58:12 +02:00
slices.fish Reindent functions to remove useless quotes 2020-03-09 19:46:43 +01:00
stack-overflow.fish Remove the forbidden function stack 2019-11-10 12:36:46 -08:00
status-command.fish Add status dirname and status basename convenience commands 2020-06-04 18:23:32 +02:00
status-value.fish Rationalize $status and errors 2020-01-25 17:28:41 -08:00
status.fish Reindent functions to remove useless quotes 2020-03-09 19:46:43 +01:00
string.fish string split: add --allow-empty flag to be used with --fields 2020-04-20 22:39:48 +02:00
switch.fish Reindent functions to remove useless quotes 2020-03-09 19:46:43 +01:00
test.fish test: Add tests for error messages 2020-06-07 16:23:29 +02:00
threads.fish Reindent functions to remove useless quotes 2020-03-09 19:46:43 +01:00
time.fish List time as builtin, support time --help 2020-02-23 23:42:57 +01:00
trace.fish Add support for fish_trace variable to trace execution 2019-11-02 14:40:57 -07:00
umask.fish Port umask tests to littlecheck 2020-03-16 21:21:10 +01:00
variable-assignment.fish use variable assignments on commandline in completions 2020-01-17 14:53:35 +01:00
vars_as_commands.fish Port some smaller tests to littlecheck 2020-02-08 09:31:49 +01:00
version.fish Port most of the invocation tests to littlecheck 2019-06-25 20:56:29 +02:00
wildcard.fish Return glob ordering to pre-3.1 state 2020-02-14 19:06:19 +01:00
wraps.fish Amend typos and grammar errors 2019-11-25 13:07:15 +01:00
zero_based_array.fish Port some smaller tests to littlecheck 2020-02-08 09:31:49 +01:00