Subject: Re: bug#48037: 28.0.50; add-change-log-entry does not detect name with digit

From: Michael Albinus <[email-masked]>
Date: Tue, 27 Apr 2021 09:55:03 +0200

Lars Ingebrigtsen <[email-masked]> writes:

Hi Lars,

>
>>>>  (defcustom add-log-current-defun-header-regexp
>>>> -  "^\\([[:upper:]][[:upper:]_ ]*[[:upper:]_]\\|[-_[:alpha:]]+\\)[ \t]*[:=]"
>>>> +  "^\\([[:upper:]][[:upper:]_ ]*[[:upper:]_]\\|[-_[:alnum:]]+\\)[ \t]*[:=]"
>>>>    "Heuristic regexp used by `add-log-current-defun' for unknown major modes.
>
> [...]
>
>> Yes. However, the existing regexp hits also entries like
>>
>> -:
>>   stage: slow
>>
>> Looks also strange. So my proposal won't get worse. Remember,
>> add-log-current-defun-header-regexp is just a heuristic.
>
> Sure, but why not improve the regexp at the same time?  That is,
> require at least one [:alpha:] for an identifier -- I think that's
> pretty reasonable as heuristics go.

Wouldn't this be too complex for a simple heuristic? Something like

"^\\([[:upper:]][[:upper:]_ ]*[[:upper:]_]\\|[-_[:alnum:]]*[[:alpha:]][-_[:alnum:]]*\\)[ \t]*[:=]"

Note, that this regexp still doesn't fit all entries in gitlab-ci.yml,
for example entries with a dot, like '.job-template:'.

Best regards, Michael.