unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#52569: 29.0.50; Wishlist: There should be a way for packages to handle files without reading them in first
@ 2021-12-17  8:40 Lars Ingebrigtsen
  2021-12-17  9:04 ` Adam Edge
  2021-12-19 17:16 ` Juri Linkov
  0 siblings, 2 replies; 8+ messages in thread
From: Lars Ingebrigtsen @ 2021-12-17  8:40 UTC (permalink / raw)
  To: 52569


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






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

end of thread, other threads:[~2021-12-23  3:43 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-12-17  8:40 bug#52569: 29.0.50; Wishlist: There should be a way for packages to handle files without reading them in first Lars Ingebrigtsen
2021-12-17  9:04 ` 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

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).