Subject: bug#52569: 29.0.50; Wishlist: There should be a way for packages to handle files without reading them in first

From: Juri Linkov <[email-masked]>
Date: Sun, 19 Dec 2021 19:16:42 +0200

> This would be useful for large files like .sqlite and images.

I'm not sure about images since some image formats are editable,
like .svg, .xpm, .ps...  Only .pdf with in doc-view-mode could have
this optimization of not loading the whole file.  Also archive files
could benefit from this optimization.

> This function would be called with the file name and would be
> responsible for returning a buffer that "displays" the file in some
> sense.

Or when it returns t, this could mean that the function displayed
the buffer in some other way, for example, by calling an external command.

Then find-file-alist could be used to implement a smarter
dired-guess-shell-alist like for https://debbugs.gnu.org/18132#92
So not only files visited by dired will be redirected
to an external command, but also files visited by C-x C-f.

> There's some details that aren't clear.  Should this new buffer be
> visiting the file?  That sounds dangerous, because saving the buffer
> contents to the file would destroy the file.  But that could be handled
> by...  write-file-functions?

Also functions that ask about saving a modified file buffer should
probably skip such buffers.

> Should there be another general mode these things should inherit from,
> like special-mode, but taking care of things like write-file-functions
> (i.e., disallow saving if the mode hasn't implemented a function for
> that)?  If so, what should it be called?  `really-special-mode' is
> probably too special.  Uhm...  Something that expresses "the displayed
> contents of this mode doesn't match up the saved contents much"...
> `unloaded-file-mode'?  Hm...  any ideas?

non-persistent-file-mode, or transient-file-mode, or ephemeral-mode...