On 25/02/22 03:33, Dmitry Gutov wrote: > Doesn't this mean that it won't do the (memq ... buffers) check and thus ignore > the result of the (project-buffers pr) call? > > Instead, it could be a lambda like > >           (lambda (buffer) >             ;; BUFFER is an entry (BUF-NAME . BUF-OBJ) of Vbuffer_alist. >             (and (memq (cdr buffer) buffers) >                  (funcall predicate buffer))) > > Does that make sense? Totally, thank you! > (I would also try to shorten the new defcustom's docstring by referring to the > existing one, but I can make that change myself.) Done. > Or if you wanted to stay on "or" but make it easier for certain usage pattern, > you could call the var 'project-ignore-buffer-conditions' (or "hide" or etc), > and change its use appropriately. Then the value could contain > >   '((not mu-project-buffer-p) >     (derived-mode . comint-mode)) > > ...and (not mu-project-buffer-p) could obviously be rewritten in a negated way > in the function's definition. I followed your suggestion and used `project-ignore-buffer-conditions' in the attached patch. Now everything works as expected when I use this: (defun mu-project-ignore-buffer-p (buffer) "Check if BUFFER is a member of `mu-ignored-buffers'." (seq-contains-p mu-ignored-buffers (buffer-name buffer) #'string-match-p)) (setq-default project-ignore-buffer-conditions '(mu-project-ignore-buffer-p (derived-mode . dired-mode))) Again, thank you for the help on this. -- Manuel Uberti www.manueluberti.eu