all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Ted Zlatanov <tzz@lifelogs.com>
To: emacs-devel@gnu.org
Subject: view/edit large files (was: map-file-lines)
Date: Fri, 06 Feb 2009 12:42:59 -0600	[thread overview]
Message-ID: <86zlgzqudo.fsf_-_@lifelogs.com> (raw)
In-Reply-To: E1LUwye-0001fA-Qe@fencepost.gnu.org

On Thu, 05 Feb 2009 00:40:40 -0500 Richard M Stallman <rms@gnu.org> wrote: 

RMS> The main point of my message is the UI proposal.  You're right that
RMS> it's good to use byte offsets.  I had not thought about that, but it
RMS> could be done by specifying the -b option for grep.

RMS> I proposed a specific UI for specifying which part of the file to
RMS> edit, one I think will be convenient.

Could you please explain, with code or text, what using your UI would
look like?  I looked over your suggestions and I still think we have the
same idea, just expressed differently.  You do seem to want `grep'
instead of dynamic offsets, but see my comments later.

Here's the "window"[1] API I'm suggesting, as a detailed list of TODO
items:

1) a buffer-local set of offset variables that indicate the beginning
and the end of the current window into the file.

2) override all write-file functions to write the buffer at the starting
offset.  I don't think there's a write-file-contents analogous to
insert-file-contents

3) override all insert-file* functions to respect the offsets as well

3) disable insertion, always in overwrite mode for better performance
(maybe allow insert at end of file...).  Force save when the "window" is
moved.

4) "window" management functions: set/get-window-offset,
set/get-window-length, etc.  These operate on the (1) buffer-local
variables.

As you can see, it requires no grep calls to pre-scan the file, and
should be consistent with the existing Emacs code.  Pre-scanning a large
file with grep can be very expensive, and it's inaccurate if the large
file is growing (e.g. a log file).

Thanks to anyone with suggestions...

Ted

[1] I still can't think of a better term than "window."
large-file-window is too verbose.  boffset?  byte-offset?
virtual-buffer?





  reply	other threads:[~2009-02-06 18:42 UTC|newest]

Thread overview: 51+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-02-02 17:20 map-file-lines Ted Zlatanov
2009-02-02 18:54 ` map-file-lines Stefan Monnier
2009-02-02 19:22   ` map-file-lines Ted Zlatanov
2009-02-02 19:52     ` map-file-lines joakim
2009-02-02 20:54       ` map-file-lines Ted Zlatanov
2009-02-02 22:42         ` map-file-lines Stefan Monnier
2009-02-03 13:57           ` map-file-lines Ted Zlatanov
2009-02-02 22:41       ` map-file-lines Stefan Monnier
2009-02-02 23:59         ` map-file-lines joakim
2009-02-03  4:13           ` map-file-lines Stefan Monnier
2009-02-03  7:27             ` map-file-lines joakim
2009-02-03 14:50               ` map-file-lines Stefan Monnier
2009-02-04  7:04                 ` map-file-lines Richard M Stallman
2009-02-04 15:38                   ` map-file-lines Ted Zlatanov
2009-02-05  5:40                     ` map-file-lines Richard M Stallman
2009-02-06 18:42                       ` Ted Zlatanov [this message]
2009-02-06 21:06                         ` view/edit large files Ted Zlatanov
2009-02-06 21:49                           ` Miles Bader
     [not found]                             ` <864oz3nyj8.fsf@lifelogs.com>
2009-02-10  1:58                               ` Stefan Monnier
2009-02-10  8:46                                 ` Eli Zaretskii
2009-02-10  9:23                                   ` Miles Bader
2009-02-10  9:54                                     ` Eli Zaretskii
2009-02-10 10:02                                       ` Miles Bader
2009-02-10 11:50                                         ` Eli Zaretskii
2009-02-10 15:08                                           ` Ted Zlatanov
2009-02-17 19:23                                             ` Stefan Monnier
2009-02-17 19:47                                               ` Eli Zaretskii
2009-02-17 20:18                                                 ` Miles Bader
2009-02-17 20:51                                                   ` Eli Zaretskii
2009-02-17 21:19                                                     ` Miles Bader
2009-02-17 21:21                                                       ` Miles Bader
2009-02-18  4:09                                                         ` Eli Zaretskii
2009-02-18  1:56                                                 ` Stefan Monnier
2009-02-20 19:23                                                   ` Ted Zlatanov
2009-02-10 12:28                                     ` Eli Zaretskii
2009-02-10 12:46                                       ` Miles Bader
2009-02-07  9:14                         ` view/edit large files (was: map-file-lines) Richard M Stallman
2009-02-09 20:26                           ` view/edit large files Ted Zlatanov
2009-02-10 20:02                             ` Richard M Stallman
2009-02-06 13:20                 ` map-file-lines Mathias Dahl
2009-02-02 22:40     ` map-file-lines Stefan Monnier
2009-02-03  4:11       ` map-file-lines Stefan Monnier
2009-02-02 20:48 ` map-file-lines Ted Zlatanov
2009-02-03  8:08   ` map-file-lines Thien-Thi Nguyen
2009-02-03 14:00     ` map-file-lines Ted Zlatanov
2009-02-03 14:17       ` map-file-lines Miles Bader
2009-02-03 10:45   ` map-file-lines Thierry Volpiatto
2009-02-03 14:06     ` map-file-lines Ted Zlatanov
2009-02-03 14:56       ` map-file-lines Thierry Volpiatto
  -- strict thread matches above, loose matches on Subject: below --
2009-02-07  3:44 view/edit large files (was: map-file-lines) MON KEY
2009-02-08  4:34 ` Bob Rogers

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

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

  git send-email \
    --in-reply-to=86zlgzqudo.fsf_-_@lifelogs.com \
    --to=tzz@lifelogs.com \
    --cc=emacs-devel@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 external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.