>> I see no way to set the same project name both for >> non-file and file buffers. > > Please try the patch below. It might have non-negligible effect on > performance though. Please try and report back. > > diff --git a/lisp/progmodes/project.el b/lisp/progmodes/project.el > index 7c51778d5d4..1494665d565 100644 > --- a/lisp/progmodes/project.el > +++ b/lisp/progmodes/project.el > @@ -816,8 +816,8 @@ project-buffers > (push buf bufs))) > (nreverse bufs))) > > -(cl-defmethod project-name ((_project (head vc))) > - (or project-vc-name > +(cl-defmethod project-name ((project (head vc))) > + (or (project--value-in-dir 'project-vc-name (project-root project)) > (cl-call-next-method))) Thanks, I confirm this uses project-vc-name from dir-locals in non-file buffers. >> The standard solution is just to use e.g.: >> ;;;###autoload(put 'compilation-directory 'safe-local-variable 'stringp) > > Huh, so the attribute :safe only makes proper sense for preloaded packages > and autoloaded defcustom forms (which are discouraged anyway). > > Do you want to write a patch for all those vars in project.el? It will > probably make sense to push it to emacs-29. With this patch the problem is solved. I can push it to emacs-29.