unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: Lars Ingebrigtsen <larsi@gnus.org>
To: 52569@debbugs.gnu.org
Subject: bug#52569: 29.0.50; Wishlist: There should be a way for packages to handle files without reading them in first
Date: Fri, 17 Dec 2021 09:40:30 +0100	[thread overview]
Message-ID: <87tuf7zksh.fsf@gnus.org> (raw)


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

The mechanism proposed on emacs-devel is to do something similar to
find-directory-functions in find-file-noselect:

(defun find-file-noselect (filename &optional nowarn rawfile wildcards)
[...]
  (if (file-directory-p filename)
      (or (and find-file-run-dired
	       (run-hook-with-args-until-success
		'find-directory-functions
		(if find-file-visit-truename
		    (abbreviate-file-name (file-truename filename))
		  filename)))

But for files.

So we could have a find-file-function-alist that maps from file names
(using the same syntax as auto-mode-alist) to functions that handle the
files.

This function would be called with the file name and would be
responsible for returning a buffer that "displays" the file in some
sense.  For .sqlite, it would basically call `sqlite-mode-open-file',
and image-mode should have a similar function.

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?

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?


In GNU Emacs 29.0.50 (build 69, x86_64-pc-linux-gnu, GTK+ Version 3.24.30, cairo version 1.16.0)
 of 2021-12-16 built on xo
Repository revision: e7a6d6a546e7e56e5a721aac86a19473e4303111
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 11.0.12013000
System Description: Debian GNU/Linux bookworm/sid


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






             reply	other threads:[~2021-12-17  8:40 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-12-17  8:40 Lars Ingebrigtsen [this message]
2021-12-17  9:04 ` bug#52569: 29.0.50; Wishlist: There should be a way for packages to handle files without reading them in first Adam Edge
2021-12-19 17:16 ` Juri Linkov
2021-12-19 20:00   ` Stefan Kangas
2021-12-20  9:55     ` Lars Ingebrigtsen
2021-12-20  9:53   ` Lars Ingebrigtsen
2021-12-22  6:03     ` Stefan Kangas
2021-12-23  3:43       ` Richard Stallman

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=87tuf7zksh.fsf@gnus.org \
    --to=larsi@gnus.org \
    --cc=52569@debbugs.gnu.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).