unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Emacs Lisp code formatting
@ 2021-11-02 15:27 Lars Ingebrigtsen
  2021-11-02 23:31 ` Campbell Barton
  2021-11-04 23:34 ` Lars Ingebrigtsen
  0 siblings, 2 replies; 19+ messages in thread
From: Lars Ingebrigtsen @ 2021-11-02 15:27 UTC (permalink / raw)
  To: emacs-devel

I've always assumed that Emacs has a function for pretty-printing Emacs
Lisp -- and it's just that I haven't found it.

`pp' indents sexps nicely, but it doesn't format code in any way a human
would.

Doesn't Emacs have a pretty-printer for code?

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no




^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Emacs Lisp code formatting
  2021-11-02 15:27 Emacs Lisp code formatting Lars Ingebrigtsen
@ 2021-11-02 23:31 ` Campbell Barton
  2021-11-03 23:59   ` Lars Ingebrigtsen
  2021-11-04 23:34 ` Lars Ingebrigtsen
  1 sibling, 1 reply; 19+ messages in thread
From: Campbell Barton @ 2021-11-02 23:31 UTC (permalink / raw)
  To: Lars Ingebrigtsen, emacs-devel

On 11/3/21 02:27, Lars Ingebrigtsen wrote:
> I've always assumed that Emacs has a function for pretty-printing Emacs
> Lisp -- and it's just that I haven't found it.
> 
> `pp' indents sexps nicely, but it doesn't format code in any way a human
> would.
> 
> Doesn't Emacs have a pretty-printer for code?

As far as I know, Emacs doesn't include this built-in.

There are a handful of 3rd party lisp formatting tools [0], though, YMMV.

[0]: https://emacs.stackexchange.com/a/55759/2418





^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Emacs Lisp code formatting
  2021-11-02 23:31 ` Campbell Barton
@ 2021-11-03 23:59   ` Lars Ingebrigtsen
  2021-11-04  0:31     ` Campbell Barton
  0 siblings, 1 reply; 19+ messages in thread
From: Lars Ingebrigtsen @ 2021-11-03 23:59 UTC (permalink / raw)
  To: Campbell Barton; +Cc: emacs-devel

Campbell Barton <ideasman42@gmail.com> writes:

> There are a handful of 3rd party lisp formatting tools [0], though, YMMV.
>
> [0]: https://emacs.stackexchange.com/a/55759/2418

Thanks.  I had a look at them, but they seem to have the problem of
being 1) too dependent on the rest of a larger package or 2) having
special code for known constructs (meaning that there'd be a maintenance
burden over the years).

I wonder how far one can get by using the symbol properties (i.e.,
edebug-form-spec/lisp-indent-function/doc-string-elt).  Has anybody
looked into that?  If not, I think I'll take a whack at implementing
something simple based on that -- it seems like it should be possible to
make something general based on that.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no



^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Emacs Lisp code formatting
  2021-11-03 23:59   ` Lars Ingebrigtsen
@ 2021-11-04  0:31     ` Campbell Barton
  2021-11-04  5:47       ` Lars Ingebrigtsen
  0 siblings, 1 reply; 19+ messages in thread
From: Campbell Barton @ 2021-11-04  0:31 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: emacs-devel

On 11/4/21 10:59, Lars Ingebrigtsen wrote:
> Campbell Barton <ideasman42@gmail.com> writes:
> 
>> There are a handful of 3rd party lisp formatting tools [0], though, YMMV.
>>
>> [0]: https://emacs.stackexchange.com/a/55759/2418
> 
> Thanks.  I had a look at them, but they seem to have the problem of
> being 1) too dependent on the rest of a larger package or 2) having
> special code for known constructs (meaning that there'd be a maintenance
> burden over the years).
> 
> I wonder how far one can get by using the symbol properties (i.e.,
> edebug-form-spec/lisp-indent-function/doc-string-elt).  Has anybody
> looked into that?  If not, I think I'll take a whack at implementing
> something simple based on that -- it seems like it should be possible to
> make something general based on that.

You could get quite far, an issue I ran into is function introspection 
such as `func-arity' depend on the code being loaded into emacs.

You could scan external `require' calls, but this means parsing many 
files to extract the information you need.
If you're OK with loading the code for the purpose of introspection - 
you could spawn an emacs instance for that purpose.
If speed is important (such as running this whenever saving a file) the 
information could be cached (with a file list to detect when the cache 
needs to be regenerated).

This is the main sticking point for me, something that would need to be 
resolved before auto-formatting could be recommended for general use.

Note that I use auto-format on save for all my packages (full 
auto-formatting, not just auto-indent), and personally find it great, 
but as far as I know I'm the only person doing this.



^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Emacs Lisp code formatting
  2021-11-04  0:31     ` Campbell Barton
@ 2021-11-04  5:47       ` Lars Ingebrigtsen
  2021-11-04  6:51         ` Campbell Barton
  0 siblings, 1 reply; 19+ messages in thread
From: Lars Ingebrigtsen @ 2021-11-04  5:47 UTC (permalink / raw)
  To: Campbell Barton; +Cc: emacs-devel

Campbell Barton <ideasman42@gmail.com> writes:

> You could scan external `require' calls, but this means parsing many
> files to extract the information you need.

Like with indentation, I think we can assume that the source has been
loaded.

> Note that I use auto-format on save for all my packages (full
> auto-formatting, not just auto-indent), and personally find it great,
> but as far as I know I'm the only person doing this.

I think auto-formatting would be a more complicated thing than a pp for
code -- it would need to preserve comments, for instance.  A pp for code
doesn't have to worry about things like that.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no



^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Emacs Lisp code formatting
  2021-11-04  5:47       ` Lars Ingebrigtsen
@ 2021-11-04  6:51         ` Campbell Barton
  2021-11-04  8:39           ` Helmut Eller
  2021-11-04 16:51           ` Lars Ingebrigtsen
  0 siblings, 2 replies; 19+ messages in thread
From: Campbell Barton @ 2021-11-04  6:51 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: emacs-devel

On 11/4/21 16:47, Lars Ingebrigtsen wrote:
> Campbell Barton <ideasman42@gmail.com> writes:
> 
>> You could scan external `require' calls, but this means parsing many
>> files to extract the information you need.
> 
> Like with indentation, I think we can assume that the source has been
> loaded.

Not sure what you mean exactly, while developing packages 
functions/macros may change, so I don't think it's reasonable to assume 
the evaluated state in emacs has loaded into memory is up to date.
In general it may be useful to auto-format code that hasn't been 
evaluated too.

>> Note that I use auto-format on save for all my packages (full
>> auto-formatting, not just auto-indent), and personally find it great,
>> but as far as I know I'm the only person doing this.
> 
> I think auto-formatting would be a more complicated thing than a pp for
> code -- it would need to preserve comments, for instance.  A pp for code
> doesn't have to worry about things like that.

For sure, even so, I think getting an initial auto-formatter working is 
a weekend project, getting all the details figured out is a bigger task 
though.

I get the impression most elisp developers prefer to manually format 
their code and use auto-indentation.

Auto formatters are becoming more popular in other languages though, 
clang-format (C/C++), black (for Python)... once you're used to running 
them automatically on save, it feels like a step backwards not to have 
this feature available.



^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Emacs Lisp code formatting
  2021-11-04  6:51         ` Campbell Barton
@ 2021-11-04  8:39           ` Helmut Eller
  2021-11-04 16:51           ` Lars Ingebrigtsen
  1 sibling, 0 replies; 19+ messages in thread
From: Helmut Eller @ 2021-11-04  8:39 UTC (permalink / raw)
  To: emacs-devel

On Thu, Nov 04 2021, Campbell Barton wrote:

> I get the impression most elisp developers prefer to manually format
> their code and use auto-indentation.

If there isn't a decent tool to do it automatically, that would be no
surprise.

Maybe C-M-q (indent-pp-sexp) should do bit more than just indent every
line.  I certainly would like it to break long lines automatically.

Or maybe code formatting could be integrated in elint.

The other obvious candidate is the byte-compiler.  But the compiler seems
to be so complicated already, that nobody wants to touch it.

> Auto formatters are becoming more popular in other languages though,
> clang-format (C/C++), black (for Python)... once you're used to
> running them automatically on save, it feels like a step backwards not
> to have this feature available.

On that topic: I find it rather unsatisfactory that GNU indent doesn't
seem to be used much.  Not even by the Emacs developers.

Helmut




^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Emacs Lisp code formatting
  2021-11-04  6:51         ` Campbell Barton
  2021-11-04  8:39           ` Helmut Eller
@ 2021-11-04 16:51           ` Lars Ingebrigtsen
  1 sibling, 0 replies; 19+ messages in thread
From: Lars Ingebrigtsen @ 2021-11-04 16:51 UTC (permalink / raw)
  To: Campbell Barton; +Cc: emacs-devel

Campbell Barton <ideasman42@gmail.com> writes:

> Not sure what you mean exactly, while developing packages
> functions/macros may change, so I don't think it's reasonable to
> assume the evaluated state in emacs has loaded into memory is up to
> date.

That is the assumption.  If you're writing code that uses (say)
`thread-first', it will be indented wrong until you load its definition.

> Auto formatters are becoming more popular in other languages though,
> clang-format (C/C++), black (for Python)... once you're used to
> running them automatically on save, it feels like a step backwards not
> to have this feature available.

Yes, auto-formatting is cool, but outside the scope of a "better pp".

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no



^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Emacs Lisp code formatting
  2021-11-02 15:27 Emacs Lisp code formatting Lars Ingebrigtsen
  2021-11-02 23:31 ` Campbell Barton
@ 2021-11-04 23:34 ` Lars Ingebrigtsen
  2021-11-06 19:01   ` Juri Linkov
  2021-11-07  1:37   ` Michael Heerdegen
  1 sibling, 2 replies; 19+ messages in thread
From: Lars Ingebrigtsen @ 2021-11-04 23:34 UTC (permalink / raw)
  To: emacs-devel

Lars Ingebrigtsen <larsi@gnus.org> writes:

> Doesn't Emacs have a pretty-printer for code?

Emacs does now.  So instead of the `pp' output of

(lambda nil
  (interactive)
  (let
      ((beg nil))
    (setq beg
	  (point))
    (while
	(and
	 (looking-at "[	\n ]")
	 (not
	  (eobp)))
      (forward-char))
    (delete-region beg
		   (point))))

you can have

(lambda ()
  (interactive)
  (let ((beg nil))
    (setq beg (point))
    (while (and (looking-at "[	\n ]") (not (eobp)))
      (forward-char))
    (delete-region beg (point))))

with `pp-emacs-lisp-code'.  And I'm sure there's a ton of stuff that can
be tweaked -- this is the sort of stuff that'd open ended, because
there's always something that can look just a bit prettier.

Have at it if you want to, but remember to add test cases.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no



^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Emacs Lisp code formatting
  2021-11-04 23:34 ` Lars Ingebrigtsen
@ 2021-11-06 19:01   ` Juri Linkov
  2021-11-06 21:34     ` Lars Ingebrigtsen
  2021-11-07  1:37   ` Michael Heerdegen
  1 sibling, 1 reply; 19+ messages in thread
From: Juri Linkov @ 2021-11-06 19:01 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: emacs-devel

>> Doesn't Emacs have a pretty-printer for code?
>
> Emacs does now.  So instead of the `pp' output of
> ...
> you can have
>
> (lambda ()
>   (interactive)
>   (let ((beg nil))
>     (setq beg (point))
>     (while (and (looking-at "[	\n ]") (not (eobp)))
>       (forward-char))
>     (delete-region beg (point))))
>
> with `pp-emacs-lisp-code'.  And I'm sure there's a ton of stuff that can
> be tweaked -- this is the sort of stuff that'd open ended, because
> there's always something that can look just a bit prettier.

This is a nice feature, but I wonder why it's not used
by ‘C-u C-M-q’ (‘indent-pp-sexp’ with a prefix arg) in Lisp mode?



^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Emacs Lisp code formatting
  2021-11-06 19:01   ` Juri Linkov
@ 2021-11-06 21:34     ` Lars Ingebrigtsen
  2021-11-07 17:27       ` Juri Linkov
  0 siblings, 1 reply; 19+ messages in thread
From: Lars Ingebrigtsen @ 2021-11-06 21:34 UTC (permalink / raw)
  To: Juri Linkov; +Cc: emacs-devel

Juri Linkov <juri@linkov.net> writes:

> This is a nice feature, but I wonder why it's not used
> by ‘C-u C-M-q’ (‘indent-pp-sexp’ with a prefix arg) in Lisp mode?

It takes a sexp and formats it -- it doesn't support interactive code
formatting, so no comments, and it'll turn ?\s into 32, etc.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no



^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Emacs Lisp code formatting
  2021-11-04 23:34 ` Lars Ingebrigtsen
  2021-11-06 19:01   ` Juri Linkov
@ 2021-11-07  1:37   ` Michael Heerdegen
  2021-11-07  1:45     ` Lars Ingebrigtsen
  1 sibling, 1 reply; 19+ messages in thread
From: Michael Heerdegen @ 2021-11-07  1:37 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: emacs-devel

Lars Ingebrigtsen <larsi@gnus.org> writes:

> with `pp-emacs-lisp-code'.

Cool - thanks for that.

May I ask why something like (pp-emacs-lisp-code '(when t 1)) fails -
can you have a look please?  Seems there is a minor problem with edebug
spec inspection.

  (wrong-type-argument listp t)
  car(t)
  (consp (car edebug))
  (and (consp (car edebug)) (eq (car (car edebug)) '&rest))
  (if (and (consp (car edebug)) (eq (car (car edebug)) '&rest)) (pp--insert-binding (car-safe (prog1 sexp (setq sexp (cdr sexp))))) (if (null (car sexp)) (insert "()") (pp--insert-lisp (car sexp))) (car-safe (prog1 sexp (setq sexp (cdr sexp)))))
  (while (and (cl-plusp indent) sexp) (insert " ") (if (and (consp (car edebug)) (eq (car (car edebug)) '&rest)) (pp--insert-binding (car-safe (prog1 sexp (setq sexp (cdr sexp))))) (if (null (car sexp)) (insert "()") (pp--insert-lisp (car sexp))) (car-safe (prog1 sexp (setq sexp (cdr sexp))))) (car-safe (prog1 edebug (setq edebug (cdr edebug)))) (setq indent (1- indent)))
  pp--format-definition((t 1) 1 t)
  (if indent (pp--format-definition sexp indent edebug) (let ((prev 0)) (while sexp (let ((start (point))) (pp--insert (if (> prev 1) "\n" " ") (car-safe (prog1 sexp (setq sexp ...)))) (setq prev (count-lines start (point)))))))
  (let* ((sym (car sexp)) (edebug (get sym 'edebug-form-spec)) (indent (get sym 'lisp-indent-function)) (doc (get sym 'doc-string-elt))) (if (eq indent 'defun) (progn (setq indent 2))) (if doc (progn (setq indent (1- doc)))) (if (and (not indent) (eq sym 'closure)) (progn (setq indent 0))) (pp--insert "(" sym) (car-safe (prog1 sexp (setq sexp (cdr sexp)))) (if indent (pp--format-definition sexp indent edebug) (let ((prev 0)) (while sexp (let ((start (point))) (pp--insert (if (> prev 1) "\n" " ") (car-safe (prog1 sexp ...))) (setq prev (count-lines start (point))))))) (insert ")"))
  pp--format-function((when t 1))
  [...]

Thanks,

Michael.



^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Emacs Lisp code formatting
  2021-11-07  1:37   ` Michael Heerdegen
@ 2021-11-07  1:45     ` Lars Ingebrigtsen
  2021-11-07  2:22       ` Michael Heerdegen
  0 siblings, 1 reply; 19+ messages in thread
From: Lars Ingebrigtsen @ 2021-11-07  1:45 UTC (permalink / raw)
  To: Michael Heerdegen; +Cc: emacs-devel

Michael Heerdegen <michael_heerdegen@web.de> writes:

> May I ask why something like (pp-emacs-lisp-code '(when t 1)) fails -
> can you have a look please?  Seems there is a minor problem with edebug
> spec inspection.

Yup.  Should now work less bad.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no



^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Emacs Lisp code formatting
  2021-11-07  1:45     ` Lars Ingebrigtsen
@ 2021-11-07  2:22       ` Michael Heerdegen
  2021-11-07  2:47         ` Lars Ingebrigtsen
  0 siblings, 1 reply; 19+ messages in thread
From: Michael Heerdegen @ 2021-11-07  2:22 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: emacs-devel

Lars Ingebrigtsen <larsi@gnus.org> writes:

> Yup.  Should now work less bad.

Thanks.

In some situations I see some other quirks like multiple consecutive
newlines added, but we do not need to discuss this here, and there is no
hurry.

Regards,

Michael.



^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Emacs Lisp code formatting
  2021-11-07  2:22       ` Michael Heerdegen
@ 2021-11-07  2:47         ` Lars Ingebrigtsen
  0 siblings, 0 replies; 19+ messages in thread
From: Lars Ingebrigtsen @ 2021-11-07  2:47 UTC (permalink / raw)
  To: Michael Heerdegen; +Cc: emacs-devel

Michael Heerdegen <michael_heerdegen@web.de> writes:

> In some situations I see some other quirks like multiple consecutive
> newlines added, but we do not need to discuss this here, and there is no
> hurry.

I'm not surprised.  😇  Feel free to rewrite and tweak as you wish.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no



^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Emacs Lisp code formatting
  2021-11-06 21:34     ` Lars Ingebrigtsen
@ 2021-11-07 17:27       ` Juri Linkov
  2021-11-07 21:06         ` Lars Ingebrigtsen
  0 siblings, 1 reply; 19+ messages in thread
From: Juri Linkov @ 2021-11-07 17:27 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: emacs-devel

>> This is a nice feature, but I wonder why it's not used
>> by ‘C-u C-M-q’ (‘indent-pp-sexp’ with a prefix arg) in Lisp mode?
>
> It takes a sexp and formats it -- it doesn't support interactive code
> formatting, so no comments, and it'll turn ?\s into 32, etc.

Oh, I thought it works like 'pp-buffer' - just by adding/removing newlines
(because everything else is handled by 'indent-sexp').

Would it be possible to do such a thing and keep it uncomplicated?
For example, to ensure there is no newline after if/when/unless, but insert
a newline after its condition, unless it's short enough to fit on one line,
etc.



^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Emacs Lisp code formatting
  2021-11-07 17:27       ` Juri Linkov
@ 2021-11-07 21:06         ` Lars Ingebrigtsen
  2021-11-08  8:59           ` Juri Linkov
  0 siblings, 1 reply; 19+ messages in thread
From: Lars Ingebrigtsen @ 2021-11-07 21:06 UTC (permalink / raw)
  To: Juri Linkov; +Cc: emacs-devel

Juri Linkov <juri@linkov.net> writes:

> Oh, I thought it works like 'pp-buffer' - just by adding/removing newlines
> (because everything else is handled by 'indent-sexp').

Since we're being passed a sexp, I thought it would be easier to just
work on the sexp instead of inserting it into the buffer and then
partially re-parse it to get at the symbol properties.  pp-buffer
doesn't have that problem, since it basically doesn't care about any of
that.

> Would it be possible to do such a thing and keep it uncomplicated?
> For example, to ensure there is no newline after if/when/unless, but insert
> a newline after its condition, unless it's short enough to fit on one line,
> etc.

Sure, doing it that way around would produce results that could be used
when editing code, too (which was not part of what I was trying to do
here), but my guess is that it'd be more complicated.  But I haven't
tried -- if you want to rewrite the code to do it that way around,
please do so.  

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no



^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Emacs Lisp code formatting
  2021-11-07 21:06         ` Lars Ingebrigtsen
@ 2021-11-08  8:59           ` Juri Linkov
  2021-11-08  9:06             ` Lars Ingebrigtsen
  0 siblings, 1 reply; 19+ messages in thread
From: Juri Linkov @ 2021-11-08  8:59 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: emacs-devel

>> Oh, I thought it works like 'pp-buffer' - just by adding/removing newlines
>> (because everything else is handled by 'indent-sexp').
>
> Since we're being passed a sexp, I thought it would be easier to just
> work on the sexp instead of inserting it into the buffer and then
> partially re-parse it to get at the symbol properties.  pp-buffer
> doesn't have that problem, since it basically doesn't care about any of
> that.

BTW, it seems the new pp-emacs-lisp-code is not yet used to pp
the variable values by 'C-h v'?  Especially, hook's lambdas/closures
could benefit from prettier printing.



^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Emacs Lisp code formatting
  2021-11-08  8:59           ` Juri Linkov
@ 2021-11-08  9:06             ` Lars Ingebrigtsen
  0 siblings, 0 replies; 19+ messages in thread
From: Lars Ingebrigtsen @ 2021-11-08  9:06 UTC (permalink / raw)
  To: Juri Linkov; +Cc: emacs-devel

Juri Linkov <juri@linkov.net> writes:

> BTW, it seems the new pp-emacs-lisp-code is not yet used to pp
> the variable values by 'C-h v'?  Especially, hook's lambdas/closures
> could benefit from prettier printing.

Yup.  It would have to determine first whether the value is a Lisp data
structure or ... a list of functions etc, but I guess the defcustom type
could be used for that?  Or just inspect the data and see what it looks
like.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no



^ permalink raw reply	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2021-11-08  9:06 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-11-02 15:27 Emacs Lisp code formatting Lars Ingebrigtsen
2021-11-02 23:31 ` Campbell Barton
2021-11-03 23:59   ` Lars Ingebrigtsen
2021-11-04  0:31     ` Campbell Barton
2021-11-04  5:47       ` Lars Ingebrigtsen
2021-11-04  6:51         ` Campbell Barton
2021-11-04  8:39           ` Helmut Eller
2021-11-04 16:51           ` Lars Ingebrigtsen
2021-11-04 23:34 ` Lars Ingebrigtsen
2021-11-06 19:01   ` Juri Linkov
2021-11-06 21:34     ` Lars Ingebrigtsen
2021-11-07 17:27       ` Juri Linkov
2021-11-07 21:06         ` Lars Ingebrigtsen
2021-11-08  8:59           ` Juri Linkov
2021-11-08  9:06             ` Lars Ingebrigtsen
2021-11-07  1:37   ` Michael Heerdegen
2021-11-07  1:45     ` Lars Ingebrigtsen
2021-11-07  2:22       ` Michael Heerdegen
2021-11-07  2:47         ` Lars Ingebrigtsen

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).