From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Antoine Levitt Newsgroups: gmane.emacs.devel Subject: Emacs scrolling past the end of buffer (was: New hook for ERC) Date: Thu, 09 Feb 2012 11:06:26 +0100 Message-ID: <87wr7we2xp.fsf_-_@gmail.com> References: <4F32E763.1060104@dogan.se> <877gzxufq3.fsf@gmail.com> <4F330620.7060201@dogan.se> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: dough.gmane.org 1328782019 16716 80.91.229.3 (9 Feb 2012 10:06:59 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Thu, 9 Feb 2012 10:06:59 +0000 (UTC) To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Thu Feb 09 11:06:59 2012 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([140.186.70.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1RvQu2-00028C-8f for ged-emacs-devel@m.gmane.org; Thu, 09 Feb 2012 11:06:59 +0100 Original-Received: from localhost ([::1]:44634 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RvQu1-0002qv-91 for ged-emacs-devel@m.gmane.org; Thu, 09 Feb 2012 05:06:57 -0500 Original-Received: from eggs.gnu.org ([140.186.70.92]:54109) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RvQtv-0002qU-9H for emacs-devel@gnu.org; Thu, 09 Feb 2012 05:06:55 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RvQtr-0008Uc-4Z for emacs-devel@gnu.org; Thu, 09 Feb 2012 05:06:51 -0500 Original-Received: from plane.gmane.org ([80.91.229.3]:60884) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RvQtq-0008UP-Vp for emacs-devel@gnu.org; Thu, 09 Feb 2012 05:06:47 -0500 Original-Received: from list by plane.gmane.org with local (Exim 4.69) (envelope-from ) id 1RvQtn-00020G-Bu for emacs-devel@gnu.org; Thu, 09 Feb 2012 11:06:43 +0100 Original-Received: from ney92-7-78-233-218-202.fbx.proxad.net ([78.233.218.202]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Thu, 09 Feb 2012 11:06:43 +0100 Original-Received: from antoine.levitt by ney92-7-78-233-218-202.fbx.proxad.net with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Thu, 09 Feb 2012 11:06:43 +0100 X-Injected-Via-Gmane: http://gmane.org/ Mail-Followup-To: emacs-devel@gnu.org Original-Lines: 49 Original-X-Complaints-To: usenet@dough.gmane.org X-Gmane-NNTP-Posting-Host: ney92-7-78-233-218-202.fbx.proxad.net Mail-Copies-To: never User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.93 (gnu/linux) X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 80.91.229.3 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:148397 Archived-At: 09/02/12 00:32, Deniz Dogan > On 2012-02-08 23:23, Antoine Levitt wrote: >> 08/02/12 22:21, Deniz Dogan >>> Hi, >>> >>> I've been trying to "fix" the behavior of ERC's scroll-to-bottom >>> module by hooking into erc-insert-post-hook. I thought that the state >>> when that hook is executed would be that point is back in the input >>> area, but it does not seem like it. >> >> Hi, >> >> What's your plan for scroll-to-bottom in ERC? Why do you need this hook >> in addition to the existing one? scroll-to-bottom in its current state >> is clearly suboptimal, and it has a pretty excessive CPU consumption >> when repeating characters. >> > > I don't really have a fully thought-out plan yet, but I believe the > new hook is necessary, because the other hooks are run when the point > has moved away from its original position. At least I couldn't figure > out how to write code that worked with those hooks. > > Having looked at the code for scroll-to-bottom just now, I see that it > uses post-command-hook, which is obviously not an acceptable solution > for the reason that you mention. > > A good compromise, in my opinion, would be to basically _not_ "scroll > to bottom" on every single character insertion. With the addition of > the post-display hook, when the user hits RET, the message will be > sent, ERC will display that message, the new hook will run, and it > will be recentered to the bottom again. This method is something I've > personally used in rcirc for quite some time and I'm very happy with > it. But then it sometimes happen that you see past the end of the buffer when scrolling (the horror!). I'd rather have excessive CPU consumption. > >> (I've also been looking for an emacs-wide replacement, without much >> success. This would be something that says : emacs is not allowed to >> display anything past the end of a buffer, period - except when the >> buffer is not long enough. Just like every other software does. This is >> one of the things that bother me the most about emacs.) >> > > I agree with you very much on this point! What do the emacs experts think about this? Is it doable?