unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: Phil Sainty <psainty@orcon.net.nz>
To: "積丹尼 Dan Jacobson" <jidanni@jidanni.org>
Cc: 45652@debbugs.gnu.org
Subject: bug#45652: so-long mode not triggered despite big file with very long lines
Date: Tue, 12 Jan 2021 08:10:40 +1300	[thread overview]
Message-ID: <7c08fce6-843b-6b7a-ab02-e947a9952a1b@orcon.net.nz> (raw)
In-Reply-To: <87k0sjljjp.5.fsf@jidanni.org>

On 12/01/21 1:55 am, 積丹尼 Dan Jacobson wrote:
> Let's make a deal: have so-long mode be the default (for those
> who have opted in) for all "big" files in the first place.

Emacs currently notices when you ask it to visit a very large
file, and offers to let you open the file 'literally' which I
would suggest trying if you are unsure of the contents.

See (info "(emacs)Visiting")

That's already a good way to improve performance in the buffer
(with its own set of trade-offs), but adding a so-long option
to that menu could be something to consider.

That aside, a custom `so-long-predicate' could use the buffer
length as a trigger, instead of scanning for newlines.


> I recall for this .har, it starts out well behaved, but then
> the whopping lines are closer to the bottom of the file.

That might remain problematic, then.

You could always configure Emacs to open all .har files in
so-long-mode, if this is the only way you encounter them?


> Even having emacs scan a file for big lines sounds like it
> might be risky.

There's no risk in checking where the newlines are, other than
time expended in doing it.  (It should be pretty quick, provided
the number of lines being scanned isn't absolutely massive.)

On that note though, I have been wondering whether the newline
cache (not part of so-long) could keep tabs on the longest line
seen thus far when it's being built, and store that value in
a buffer-local variable which so-long could see?

I don't know much about that cache; but if it's all built when
the file is initially inserted into the buffer, then this could
be a nice alternative to having so-long scan for long lines itself,
and may let us 'see' the whole file, rather than just checking
the first N lines.


> PS> for `so-long-detected-long-line-p' for details.
> Not yet in 27.1

It's definitely in 27.1, if so-long.el is loaded.  It's a function.
"C-h o so-long-detected-long-line-p" should find it.


-Phil






  reply	other threads:[~2021-01-11 19:10 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-01-04 11:47 bug#45652: so-long mode not triggered despite big file with very long lines 積丹尼 Dan Jacobson
2021-01-10 14:53 ` Lars Ingebrigtsen
2021-01-11 11:21   ` 積丹尼 Dan Jacobson
2021-01-11 11:28 ` Phil Sainty
2021-01-11 12:55   ` 積丹尼 Dan Jacobson
2021-01-11 19:10     ` Phil Sainty [this message]
2021-01-11 23:04       ` 積丹尼 Dan Jacobson
2021-01-12  2:30         ` Phil Sainty
2021-01-12  5:53           ` 積丹尼 Dan Jacobson
2021-01-11 18:39   ` Lars Ingebrigtsen
2021-01-11 19:18     ` Phil Sainty
2021-01-11 19:30       ` Lars Ingebrigtsen
2021-01-11 21:07         ` Lars Ingebrigtsen
2021-01-12  2:42           ` Phil Sainty
2021-01-12 12:41             ` Lars Ingebrigtsen
2021-01-12 15:28               ` Eli Zaretskii
2021-01-12 15:37                 ` Lars Ingebrigtsen
2021-01-12 15:50                   ` Eli Zaretskii
2021-01-12 17:44                     ` Lars Ingebrigtsen
2021-01-12 19:22             ` Lars Ingebrigtsen
2021-01-12 23:49               ` Phil Sainty
2021-07-30  5:30                 ` Phil Sainty
2021-08-03 11:47                   ` Phil Sainty
2021-01-12  3:25           ` Eli Zaretskii
2021-01-12 12:40             ` Lars Ingebrigtsen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=7c08fce6-843b-6b7a-ab02-e947a9952a1b@orcon.net.nz \
    --to=psainty@orcon.net.nz \
    --cc=45652@debbugs.gnu.org \
    --cc=jidanni@jidanni.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).