GNU bug report logs -
#63469
29.0.90; project.el doesn't add menu-bar entries
Previous Next
Reported by: Spencer Baugh <sbaugh <at> janestreet.com>
Date: Fri, 12 May 2023 17:49:02 UTC
Severity: normal
Found in version 29.0.90
Done: Eli Zaretskii <eliz <at> gnu.org>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
On 23/05/2023 09:46, Juri Linkov wrote:
>>> +(define-minor-mode project-mode
>>> + "Toggle display of project menu in the project-aware buffers."
>>> + (if project-mode
>>> + (setq-local project-name (concat
>>> + " "
>>> + (propertize
>>> + (project-name (project-current))
>>> + 'mouse-face 'mode-line-highlight
>>> + 'local-map project-mode-line-map)))))
>>
>> At the very least, this will need some better name, because project
>> features don't need any mode to be turned on to be used.
>>
>> project-menu-mode?
>
> 'project-mode' will be more like 'vc-mode' that actually is not a minor mode.
> I don't know why it was named 'vc-mode'.
vc-mode is not a mode at all: you can't choose to enable or disable it.
>> Next, I'm not quite sure about the caching of project-name. There is no
>> scenario when it will be invalidated, right?
>
> I can't imagine such scenario.
Any scenario where the user assigns of changes the name, e.g. by
changing the value of project-vc-name.
>> Try simply calling (project-name (project-current t)) every time, see how
>> the performance is. Or, more thoroughly, copy the if-let logic from
>> project-prefixed-buffer-name.
>
> Ok, will try.
>
> BTW, there is another problem: by default 'project-name' is defined as
> (file-name-nondirectory (directory-file-name (project-root project))).
> But then project name often is the same for different projects
> because the directory name is the same for the same repository.
> For example, in a subtree:
>
> emacs-master/emacs/...
> emacs-29/emacs/...
> emacs-28/emacs/...
>
> All project names are the same 'emacs'. How would it be possible to
> customize project names? Trying to get a parent dir might be too
> unreliable. So probably the only way is to define the name manually.
> Maybe in .dir-locals.el. Actually this works:
>
> ((nil . ((project-vc-name . "emacs-29"))))
>
> Not sure why non-VC projects can't be named the same way.
They can -- using whatever way the respective backend provides.
> Also noticed that project-vc-name is not marked as safe,
> so always asks a confirmation.
This bug report was last modified 2 years and 43 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.