From: Juri Linkov Date: Tue, 28 May 2024 16:31:55 +0000 (+0300) Subject: Provide a list of default values for M-n of project-find-file (bug#70996) X-Git-Tag: archive/raspbian/1%30.1+1-3+rpi1^2~2^2~20^2~1327 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=ebac4d4872829c44f65966b3268ceaf7ecbf43d9;p=emacs.git Provide a list of default values for M-n of project-find-file (bug#70996) * lisp/progmodes/project.el (project-find-file) (project-or-external-find-file): Provide a list of suggested filenames for the first arg of project-find-file-in. Use buffer-file-name first to make it more predictable for M-n. (project--read-file-cpd-relative): Handle mb-default as a list. --- diff --git a/lisp/progmodes/project.el b/lisp/progmodes/project.el index dceca2eab48..8a8b4fc33d6 100644 --- a/lisp/progmodes/project.el +++ b/lisp/progmodes/project.el @@ -1080,8 +1080,9 @@ for VCS directories listed in `vc-directory-exclusion-list'." (dirs (list root)) (project-files-relative-names t)) (project-find-file-in - (or (thing-at-point 'filename) - (and buffer-file-name (project--find-default-from buffer-file-name pr))) + (delq nil (list (and buffer-file-name (project--find-default-from + buffer-file-name pr)) + (thing-at-point 'filename))) dirs pr include-all))) ;;;###autoload @@ -1103,8 +1104,9 @@ for VCS directories listed in `vc-directory-exclusion-list'." (project-external-roots pr))) (project-file-history-behavior t)) (project-find-file-in - (or (thing-at-point 'filename) - (and buffer-file-name (project--find-default-from buffer-file-name pr))) + (delq nil (list (and buffer-file-name (project--find-default-from + buffer-file-name pr)) + (thing-at-point 'filename))) dirs pr include-all))) (defcustom project-read-file-name-function #'project--read-file-cpd-relative @@ -1166,11 +1168,14 @@ by the user at will." (setq all-files (delete common-parent-directory all-files)) t)) - (mb-default (if (and common-parent-directory - mb-default - (file-name-absolute-p mb-default)) - (file-relative-name mb-default common-parent-directory) - mb-default)) + (mb-default (mapcar (lambda (mb-default) + (if (and common-parent-directory + mb-default + (file-name-absolute-p mb-default)) + (file-relative-name + mb-default common-parent-directory) + mb-default)) + (if (listp mb-default) mb-default (list mb-default)))) (substrings (mapcar (lambda (s) (substring s cpd-length)) all-files)) (_ (when included-cpd (setq substrings (cons "./" substrings))))