GNU bug report logs -
#41821
28.0.50; read-directory-name in vc commands should provide defaults from projects
Previous Next
Reported by: Juri Linkov <juri <at> linkov.net>
Date: Thu, 11 Jun 2020 23:39:02 UTC
Severity: wishlist
Tags: fixed
Fixed in version 28.0.50
Done: Juri Linkov <juri <at> linkov.net>
Bug is archived. No further changes may be made.
Full log
Message #159 received at 41821 <at> debbugs.gnu.org (full text, mbox):
> we at least put this feature request on hold (and, for now,
> revert the installed patches).
Ok, reverted the installed patches.
It's easy to achieve the same in the init file with these
simple advises. Now this works perfectly from POV of users
who prefer to use project directories everywhere in all prompts
that ask for a directory:
#+begin_src emacs-lisp
;; When a prompt of some commands such as 'rgrep' or 'vc-print-log' asks for
;; a directory name, allow 'M-n' to access the most recently used project
;; directories saved in ~/.emacs.d/projects:
(advice-add 'read-directory-name :around
(lambda (orig-fun prompt &optional dir default-dirname
mustmatch initial)
(when (featurep 'project)
(setq default-dirname
(append (cond
((null default-dirname)
(list (or dir default-directory)))
((consp default-dirname)
default-dirname)
(t
(list default-dirname)))
(project-known-project-roots))))
(let ((ret (funcall orig-fun prompt dir default-dirname
mustmatch initial)))
(when (featurep 'project)
;; Update project list with selected project dir
(let ((default-directory ret))
(project-current t)))
ret))
'((name . read-directory-name-project-defaults)))
(advice-add 'vc-dir :after
(lambda (dir &optional _backend)
(when (featurep 'project)
;; Add current vc project dir to project list
(let ((default-directory dir))
(project-current t))))
'((name . vc-dir-add-project)))
#+end_src
This bug report was last modified 4 years and 319 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.