Fix an "empty identifier" problem
* lisp/progmodes/xref.el (xref--read-identifier): Abort on empty input if there is no default (https://lists.gnu.org/archive/html/help-gnu-emacs/2019-05/msg00012.html).
This commit is contained in:
parent
d9f62fceaf
commit
5ff4bfaeec
1 changed files with 17 additions and 12 deletions
|
@ -828,20 +828,25 @@ Return an alist of the form ((FILENAME . (XREF ...)) ...)."
|
|||
(defun xref--read-identifier (prompt)
|
||||
"Return the identifier at point or read it from the minibuffer."
|
||||
(let* ((backend (xref-find-backend))
|
||||
(id (xref-backend-identifier-at-point backend)))
|
||||
(def (xref-backend-identifier-at-point backend)))
|
||||
(cond ((or current-prefix-arg
|
||||
(not id)
|
||||
(not def)
|
||||
(xref--prompt-p this-command))
|
||||
(completing-read (if id
|
||||
(format "%s (default %s): "
|
||||
(substring prompt 0 (string-match
|
||||
"[ :]+\\'" prompt))
|
||||
id)
|
||||
prompt)
|
||||
(xref-backend-identifier-completion-table backend)
|
||||
nil nil nil
|
||||
'xref--read-identifier-history id))
|
||||
(t id))))
|
||||
(let ((id
|
||||
(completing-read
|
||||
(if def
|
||||
(format "%s (default %s): "
|
||||
(substring prompt 0 (string-match
|
||||
"[ :]+\\'" prompt))
|
||||
def)
|
||||
prompt)
|
||||
(xref-backend-identifier-completion-table backend)
|
||||
nil nil nil
|
||||
'xref--read-identifier-history def)))
|
||||
(if (equal id "")
|
||||
(or def (user-error "There is no defailt identifier"))
|
||||
id)))
|
||||
(t def))))
|
||||
|
||||
|
||||
;;; Commands
|
||||
|
|
Loading…
Add table
Reference in a new issue