Subject: bug#71985: Lexical directives at start of file

From: Heime <[email-masked]>
Date: Sun, 07 Jul 2024 19:19:41 +0000

On Sunday, July 7th, 2024 at 7:02 PM, Eli Zaretskii <[email-masked]> wrote:

> > Date: Sun, 07 Jul 2024 18:45:12 +0000
> > From: Heime via "Bug reports for GNU Emacs,
> > the Swiss army knife of text editors" [email-masked]
> > 
> > I was curious whether the -- lexical-binding: t -- directive is effective
> > when there is an arbitrary number of comment characters before it.
> 
> 
> Why do you need to know this detail?

Because I use ;;; as highlight when using outlines.
 
> > For instance, in file.el:
> > 
> > ;;; file.el -- lexical-binding: t --
> > 
> > This is the first line from git-rebase.el in the Magit package:
> > 
> > ;;; git-rebase.el --- Edit Git rebase files -- lexical-binding:t --
> > 
> > This suggests that some characters can precede the variable list. However,
> > it's unclear if the number of characters can be arbitrary.
> 
> 
> Above you mention "comment characters". Here you are talking only
> about "characters" in general. I'm confused by what you are asking
> about.

Yes about the starting ;;;.  But then I have also seen additional non-directive
descriptions before the -*- lexical-binding:t -*- directive.

As the lexical definition will be around a while, it would be good to know what
would be valid.
 
> > I couldn't find
> > a clear explanation in either the Emacs or Elisp manuals. The Emacs manual
> > mentions that it can be placed on the second line of a shell script, but
> > doesn't provide much detail on the format. The Elisp manual does not describe
> > the appearance of this directive at all.
> 
> 
> The above is incorrect. The ELisp manual shows how this line should
> look in the nose "selecting Lisp Dialect". I think that node answers
> your questions.
>