Extend +eshell/goto to allow finding files

Instead of only looking at directories, +eshell/goto now works with
files.  If a directory is selected, set eshell to that directory.  If
a file is selected, make eshell go to the directory where that file is
contained then use find-file.
This commit is contained in:
2024-10-16 16:30:13 +01:00
parent 69f916994e
commit bec6fdbc3f

View File

@@ -30,7 +30,11 @@
;; Aliases
(defun eshell/goto (&rest args)
"Use `read-directory-name' to change directories"
(eshell/cd (list (read-directory-name "Directory?: "))))
(let* ((name (read-file-name "Choose file: "))
(dir (file-name-directory name)))
(eshell/cd (list dir))
(if (not (file-directory-p name))
(find-file name))))
(defun eshell/project-root (&rest args)
"Change to directory `project-root'"