Subject: bug#24780: 26.0.50; describe-mode lexical-binding

From: Stefan Kangas <[email-masked]>
Date: Tue, 11 Aug 2020 18:06:39 -0700

Alan Mackenzie <[email-masked]> writes:

>> Andreas Röhler <[email-masked]> writes:
>
>>> consider it useful if `describe-mode' reports value of var
>>> `lexical-binding'.
[...]
>>> Even displaying it in mode-line might be an option.
>
>> That does sound more useful -- I often find jumping back to the start of
>> the buffer to check.
>
>> `emacs-lisp-mode' could display that somewhere in the mode line, I
>> guess?  But where?  Perhaps among the U:**- thing at the start?  Or in
>> the mode stuff?
>
>> So instead of
>
>> (Emacs-Lisp)
>
>> we'd get
>
>> (Emacs-Lisp Lexical)
>
>> when we have lexical binding in the current buffer?  Does anybody have
>> an opinion here?
>
> Yes.  "Lexical" is too long, considering its relative lack of
> importance.  Space on the mode line is precious, particularly when
> running Follow Mode.  Also, "Lexical" isn't really a minor mode, so
> shouldn't look like one.
>
> How about, instead,
>
>     (Emacs-Lisp/L)
>
> or
>
>     (Emacs-Lisp/D)

How about:

     (Emacs-Lisp)

And:

     (Emacs-Lisp/D)

This would indicate the legacy nature of dynamic binding, and gently
nudge users to move to lexical-binding.

> ?  Even that is going to be a nuisance to some people, so it really
> needs a user option to turn it off.

I wouldn't add a user option.  The correct way to get rid of the "/D",
if it bothers you, would then be to convert the code to
lexical-binding.

Best regards,
Stefan Kangas