Subject: Re: bug#63469: 29.0.90; project.el doesn't add menu-bar entries

From: Juri Linkov <[email-masked]>
Date: Thu, 25 May 2023 09:35:36 +0300

>>>> Sharing between vc and project would be nice.  If possible, this will
>>>> allow a shorter modeline indicator that will combine vc and project like
>>>>     --- project-branch ---
>>>> where the project name replaces the vc-backend name.
>>> That indeed sounds like something that should require specific
>>> configuration. There can be projects without a branch, or branches without
>>> "current project".
>>>
>>> Or situations like the project root is not the vc root. E.g. when the
>>> current buffer is in a submodule (so the current branch is submodule's),
>>> and the project pertains to the parent repository.
>> The idea is simple: just to replace the backend name by the project name
>> when the project and its name are non-nil.
>
> I'm not sure the effect will be clear enough and appreciated by all of our
> users.

This is intended only after customization like this that shows the backend
by default:

  (defcustom vc-mode-line-format '(backend status revision)
    "What items to display on the mode line.
  Possible values:
  `project' - the current project name;
  `backend' - backend name;
  `status' - a character that denotes the vc status;
  `revision' - revision number and/or lock status;
  `commit' - commit name;
  `commit-abbr' - abbreviated commit name;
  `branch' - branch name;
  `separator' - a string between items.
  See more at Info node (emacs) VC Mode Line."
    :type '(repeat
            (choice
             (const :tag "Project name" project)
             (const :tag "Backend name" backend)
             (const :tag "Status character" status)
             (const :tag "Revision number/Lock status" revision)
             (const :tag "Commit name" commit)
             (const :tag "Abbreviated commit name" commit-abbr)
             (const :tag "Branch name" branch)
             (function :tag "Custom function")
             (string :tag "Separator")))
    :version "30.1"
    :group 'vc)