diff options
author | Jim Porter <jporterbugs@gmail.com> | 2024-05-29 19:21:09 -0700 |
---|---|---|
committer | Jim Porter <jporterbugs@gmail.com> | 2024-05-29 19:33:13 -0700 |
commit | 1df3554f0766c91a9452cd40f74f469ed612eda6 (patch) | |
tree | 798505d50296e7f0948c31c22f32dc4fab0d73d2 /lisp/emacs-lisp/lisp-mode.el | |
parent | 6a0f4d333a35543cd99bd88e053995a44020dadb (diff) | |
download | emacs-1df3554f0766c91a9452cd40f74f469ed612eda6.tar.gz emacs-1df3554f0766c91a9452cd40f74f469ed612eda6.tar.bz2 emacs-1df3554f0766c91a9452cd40f74f469ed612eda6.zip |
Make Eshell's "which" command extensible
Since 'eshell-named-command-hook' already makes execution of commands
extensible, "which" should be too. This makes sure that "which" returns
the right result for quoted commands like "/:cat".
* lisp/eshell/em-alias.el (eshell-aliases-file): Allow it to be nil.
(eshell-read-aliases-list, eshell-write-aliases-list): Check if
'eshell-aliases-file' is nil.
(eshell-maybe-replace-by-alias--which): New function...
(eshell-maybe-replace-by-alias): ... use it.
* lisp/eshell/esh-cmd.el (eshell-named-command-hook): Update docstring.
(eshell/which): Make extensible.
(eshell--find-plain-lisp-command, eshell-plain-command--which): New
functions.
(eshell-plain-command): Use 'eshell--find-plain-lisp-command'.
* lisp/eshell/esh-ext.el (eshell-explicit-command--which): New
function...
(eshell-explicit-command): ... unise it.
(eshell-quoted-file-command--which): New function...
(eshell-quoted-file-command): ... use it.
(eshell-external-command--which): New function.
* test/lisp/eshell/esh-cmd-tests.el
(esh-cmd-test/which/plain/eshell-builtin)
(esh-cmd-test/which/plain/external-program)
(esh-cmd-test/which/plain/not-found, esh-cmd-test/which/alias)
(esh-cmd-test/which/explicit, esh-cmd-test/which/explicit/not-found)
(esh-cmd-test/which/quoted-file)
(esh-cmd-test/which/quoted-file/not-found): New tests.
* test/lisp/eshell/eshell-tests-helpers.el (with-temp-eshell-settings):
Don't load or save aliases.
(eshell-command-result--match,eshell-command-result--match-explainer)
(eshell-command-result-match): New functions.
Diffstat (limited to 'lisp/emacs-lisp/lisp-mode.el')
0 files changed, 0 insertions, 0 deletions