branch: elpa/magit
commit 6aec967ee4af617ddae577153208bd8a8bb011f0
Author: Jonas Bernoulli <[email protected]>
Commit: Jonas Bernoulli <[email protected]>
Move Ido kludges to a new package magit-ido
---
lisp/magit-base.el | 43 +++++++++----------------------------------
lisp/magit-extras.el | 15 ---------------
lisp/magit-submodule.el | 22 ++++++++--------------
lisp/magit-subtree.el | 1 -
4 files changed, 17 insertions(+), 64 deletions(-)
diff --git a/lisp/magit-base.el b/lisp/magit-base.el
index b2b401f2016..635b3f835ac 100644
--- a/lisp/magit-base.el
+++ b/lisp/magit-base.el
@@ -69,21 +69,17 @@
(defcustom magit-completing-read-function #'magit-builtin-completing-read
"Function to be called when requesting input from the user.
-If you have enabled `ivy-mode' or `helm-mode', then you don't
-have to customize this option; `magit-builtin-completing-read'
-will work just fine. However, if you use Ido completion, then
-you do have to use `magit-ido-completing-read', because Ido is
-less well behaved than the former, more modern alternatives.
-
-If you would like to use Ivy or Helm completion with Magit but
-not enable the respective modes globally, then customize this
-option to use `ivy-completing-read' or
-`helm--completing-read-default'. If you choose to use
-`ivy-completing-read', note that the items may always be shown in
-alphabetical order, depending on your version of Ivy."
+The default, `magit-builtin-completing-read', support third-party
+completion frameworks, including `vertico-mode', `ivy-mode' and
+`helm-mode'.
+
+However, if you would like to use Ivy or Helm completion with Magit but
+not enable the respective modes globally, then customize this option to
+use `ivy-completing-read' or `helm--completing-read-default'.
+
+If you still use `ido-mode', you'll likely need the `magit-ido' package."
:group 'magit-essentials
:type `(radio (function-item ,#'magit-builtin-completing-read)
- (function-item ,#'magit-ido-completing-read)
(function-item ivy-completing-read)
(function-item helm--completing-read-default)
(function :tag "Other function")))
@@ -699,27 +695,6 @@ third-party completion frameworks."
hist def inherit-input-method)))
(if no-split input values)))
-(defun magit-ido-completing-read
- (prompt choices &optional predicate require-match initial-input hist def)
- "Ido-based `completing-read' almost-replacement.
-
-Unfortunately `ido-completing-read' is not suitable as a
-drop-in replacement for `completing-read', instead we use
-`ido-completing-read+' from the third-party package by the
-same name."
- (if (and (require 'ido-completing-read+ nil t)
- (fboundp 'ido-completing-read+))
- (ido-completing-read+ prompt choices predicate require-match
- initial-input hist
- (or def (and require-match (car choices))))
- (display-warning 'magit "ido-completing-read+ is not installed
-
-To use Ido completion with Magit you need to install the
-third-party `ido-completing-read+' packages. Falling
-back to built-in `completing-read' for now." :error)
- (magit-builtin-completing-read prompt choices predicate require-match
- initial-input hist def)))
-
(defvar-keymap magit-minibuffer-local-ns-map
:parent minibuffer-local-map
"SPC" #'magit-whitespace-disallowed
diff --git a/lisp/magit-extras.el b/lisp/magit-extras.el
index 5e399440fe3..63264584dc3 100644
--- a/lisp/magit-extras.el
+++ b/lisp/magit-extras.el
@@ -34,8 +34,6 @@
(declare-function vc-git-command "vc-git"
(buffer okstatus file-or-list &rest flags))
-(defvar ido-exit)
-(defvar ido-fallback)
(defvar project-prefix-map)
(defvar project-switch-commands)
@@ -193,19 +191,6 @@ blame to center around the line point is on."
;;; Emacs Tools
-;;;###autoload
-(defun ido-enter-magit-status ()
- "Drop into `magit-status' from file switching.
-
-To make this command available use something like:
-
- (keymap-set ido-common-completion-map
- \"C-x g\" \\='ido-enter-magit-status)"
- (interactive)
- (setq ido-exit 'fallback)
- (setq ido-fallback #'magit-status)
- (exit-minibuffer))
-
;;;###autoload
(defun magit-project-status ()
"Run `magit-status' in the current project's root."
diff --git a/lisp/magit-submodule.el b/lisp/magit-submodule.el
index a342e9ab765..18eb9dab7d6 100644
--- a/lisp/magit-submodule.el
+++ b/lisp/magit-submodule.el
@@ -220,26 +220,20 @@ it is nil, then PATH also becomes the name."
(interactive
(magit-with-toplevel
(let* ((url (magit-read-string-ns "Add submodule (remote url)"))
- (path (let ((read-file-name-function
- (if (or (eq read-file-name-function
'ido-read-file-name)
- (advice-function-member-p
- 'ido-read-file-name
- read-file-name-function))
- ;; The Ido variant doesn't work properly here.
- #'read-file-name-default
- read-file-name-function)))
- (directory-file-name
- (file-relative-name
- (read-directory-name
- "Add submodules at path: " nil nil nil
- (and (string-match "\\([^./]+\\)\\(\\.git\\)?$" url)
- (match-string 1 url))))))))
+ (path (magit-submodule-read-path "Add submodules at path: " url)))
(list url
(directory-file-name path)
(magit-submodule-read-name-for-path path)
(magit-submodule-arguments "--force")))))
(magit-submodule-add-1 url path name args))
+(defun magit-submodule-read-path (prompt url)
+ (directory-file-name
+ (file-relative-name
+ (read-directory-name prompt nil nil nil
+ (and (string-match "\\([^./]+\\)\\(\\.git\\)?$" url)
+ (match-string 1 url))))))
+
(defun magit-submodule-add-1 (url &optional path name args)
(magit-with-toplevel
(magit-submodule--maybe-reuse-gitdir name path)
diff --git a/lisp/magit-subtree.el b/lisp/magit-subtree.el
index 4bd1ed1aa75..b771a23e454 100644
--- a/lisp/magit-subtree.el
+++ b/lisp/magit-subtree.el
@@ -82,7 +82,6 @@
(topdir (magit-toplevel))
(prefix (read-directory-name (concat prompt ": ") topdir default)))
(if (file-name-absolute-p prefix)
- ;; At least `ido-mode's variant is not compatible.
(if (string-prefix-p topdir prefix)
(file-relative-name prefix topdir)
(user-error "%s isn't inside the repository at %s" prefix topdir))