bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#71284: 30.0.50; [PATCH] Add support for outline-minor-mode to Eshell


From: Jim Porter
Subject: bug#71284: 30.0.50; [PATCH] Add support for outline-minor-mode to Eshell
Date: Sun, 2 Jun 2024 21:34:14 -0700

On 6/1/2024 11:37 PM, Juri Linkov wrote:
Sorry, I still don't understand why do you need two levels.
Is it because in Eshell prompts are often multi-line?

I'm not sure if Eshell prompts are *often* multi-line, but personally I use multi-line prompts everywhere I can. Maybe I'm just over-optimizing for my own personal preferences here.

IIUC, with two levels, the case when the output is empty has such problems
that one line will contain two outline headers, that also means
two conflicting margin arrows on the same line?

The way I implemented this, this problem wouldn't come up: if the output is completely empty, there's no second-level node in the outline for that command.

For prompts, this isn't as important, since a single-line prompt should
always have some visible text. For multi-line prompts, it would be possible
to treat the heading as the first non-empty line, but that would be
additional work on the Eshell side, and I think we'd still need the
outline.el changes to handle collapsing the command output. (Improving
heading-detection for multi-line prompts could always be done in a later
bug, too.)

So the outline.el changes are required only to handle empty output lines?
That essentially means adding support for two outline headers
on the same line?

To be more precise, the outline.el changes would be required to handle the case where a command's output *begins* with one or more newlines. So the total output isn't empty, but the first *line* of it is.

In any case, the more I think about this, the more my current patch seems like the wrong way to go about this. Even just describing the user-facing behavior in all scenarios is pretty complex, so I think it might be better to keep it simple and have a single outline level.

That said, for the multi-line prompt case, I wonder if it would make sense for outline.el to support multi-line headers. If I could mark the entire prompt + command input as a "header", then collapsing it would look better: users would still see all of their input in the collapsed node. It would look something like so:

  v /home/user/dir
    $ cat some-file.txt
    output
    output
    output

  > /home/user/dir
    $ cat some-file.txt...





reply via email to

[Prev in Thread] Current Thread [Next in Thread]