aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGlenn Morris2020-04-05 07:50:15 -0700
committerGlenn Morris2020-04-05 07:50:15 -0700
commit94b6b0b5c5544d46a89915c94a83e2f4a224d044 (patch)
treed806821f9cba49fa2e32b4110784a211104a8c53
parenta32c55bd9f3aa06b74adc9630b55689972c52356 (diff)
parentac3da1dd9626bc475e78b18c0b438435790e8926 (diff)
downloademacs-94b6b0b5c5544d46a89915c94a83e2f4a224d044.tar.gz
emacs-94b6b0b5c5544d46a89915c94a83e2f4a224d044.zip
Merge from origin/emacs-27
ac3da1dd96 Handle project--files-in-directory finding no files better 650a664ccd Let imenu to work on the menu bar when its list is a singl...
-rw-r--r--lisp/imenu.el14
-rw-r--r--lisp/progmodes/project.el2
-rw-r--r--lisp/progmodes/xref.el1
3 files changed, 12 insertions, 5 deletions
diff --git a/lisp/imenu.el b/lisp/imenu.el
index fb8b3de662b..1949f2f48f7 100644
--- a/lisp/imenu.el
+++ b/lisp/imenu.el
@@ -911,11 +911,15 @@ to `imenu-update-menubar'.")
911 (setq index-alist (imenu--split-submenus index-alist)) 911 (setq index-alist (imenu--split-submenus index-alist))
912 (let* ((menu (imenu--split-menu index-alist 912 (let* ((menu (imenu--split-menu index-alist
913 (buffer-name))) 913 (buffer-name)))
914 (menu1 (imenu--create-keymap (car menu) 914 (menu1 (imenu--create-keymap
915 (cdr (if (< 1 (length (cdr menu))) 915 (car menu)
916 menu 916 (cdr (if (or (< 1 (length (cdr menu)))
917 (car (cdr menu)))) 917 ;; Have we a non-nested single entry?
918 'imenu--menubar-select))) 918 (atom (cdadr menu))
919 (atom (cadadr menu)))
920 menu
921 (car (cdr menu))))
922 'imenu--menubar-select)))
919 (setcdr imenu--menubar-keymap (cdr menu1))))))) 923 (setcdr imenu--menubar-keymap (cdr menu1)))))))
920 924
921(defun imenu--menubar-select (item) 925(defun imenu--menubar-select (item)
diff --git a/lisp/progmodes/project.el b/lisp/progmodes/project.el
index f4678681858..1f4cbe96ad8 100644
--- a/lisp/progmodes/project.el
+++ b/lisp/progmodes/project.el
@@ -480,6 +480,8 @@ pattern to search for."
480 nil))) 480 nil)))
481 481
482(defun project--find-regexp-in-files (regexp files) 482(defun project--find-regexp-in-files (regexp files)
483 (unless files
484 (user-error "Empty file list"))
483 (let ((xrefs (xref-matches-in-files regexp files))) 485 (let ((xrefs (xref-matches-in-files regexp files)))
484 (unless xrefs 486 (unless xrefs
485 (user-error "No matches for: %s" regexp)) 487 (user-error "No matches for: %s" regexp))
diff --git a/lisp/progmodes/xref.el b/lisp/progmodes/xref.el
index 1a344563405..c36a9bd9940 100644
--- a/lisp/progmodes/xref.el
+++ b/lisp/progmodes/xref.el
@@ -1232,6 +1232,7 @@ IGNORES is a list of glob patterns for files to ignore."
1232 "Find all matches for REGEXP in FILES. 1232 "Find all matches for REGEXP in FILES.
1233Return a list of xref values. 1233Return a list of xref values.
1234FILES must be a list of absolute file names." 1234FILES must be a list of absolute file names."
1235 (cl-assert (consp files))
1235 (pcase-let* 1236 (pcase-let*
1236 ((output (get-buffer-create " *project grep output*")) 1237 ((output (get-buffer-create " *project grep output*"))
1237 (`(,grep-re ,file-group ,line-group . ,_) (car grep-regexp-alist)) 1238 (`(,grep-re ,file-group ,line-group . ,_) (car grep-regexp-alist))