From mboxrd@z Thu Jan 1 00:00:00 1970 Path: main.gmane.org!not-for-mail From: James Clark Newsgroups: gmane.emacs.devel Subject: Re: Propertizing the minor-mode-alist Date: Wed, 22 Sep 2004 14:30:42 +0700 Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Message-ID: <1095838242.7357.414.camel@pineapple.bkk.thaiopensource.com> References: <1095335866.7357.83.camel@pineapple.bkk.thaiopensource.com> <1095388341.7357.93.camel@pineapple.bkk.thaiopensource.com> <1095475837.7357.125.camel@pineapple.bkk.thaiopensource.com> <1095575707.7357.220.camel@pineapple.bkk.thaiopensource.com> <1095647396.7357.281.camel@pineapple.bkk.thaiopensource.com> NNTP-Posting-Host: deer.gmane.org Mime-Version: 1.0 Content-Type: text/plain Content-Transfer-Encoding: 7bit X-Trace: sea.gmane.org 1095838288 14613 80.91.229.6 (22 Sep 2004 07:31:28 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Wed, 22 Sep 2004 07:31:28 +0000 (UTC) Cc: "emacs-devel@gnu.org" Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Wed Sep 22 09:31:16 2004 Return-path: Original-Received: from lists.gnu.org ([199.232.76.165]) by deer.gmane.org with esmtp (Exim 3.35 #1 (Debian)) id 1CA1at-0003fI-00 for ; Wed, 22 Sep 2004 09:31:15 +0200 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.33) id 1CA1gr-0004Gr-NC for ged-emacs-devel@m.gmane.org; Wed, 22 Sep 2004 03:37:25 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.33) id 1CA1gh-0004Fw-54 for emacs-devel@gnu.org; Wed, 22 Sep 2004 03:37:15 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.33) id 1CA1ge-0004FF-TU for emacs-devel@gnu.org; Wed, 22 Sep 2004 03:37:14 -0400 Original-Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.33) id 1CA1ge-0004F5-PM for emacs-devel@gnu.org; Wed, 22 Sep 2004 03:37:12 -0400 Original-Received: from [161.58.244.53] (helo=thaiopensource.com) by monty-python.gnu.org with esmtp (TLSv1:DES-CBC3-SHA:168) (Exim 4.34) id 1CA1aT-0007F0-Vm; Wed, 22 Sep 2004 03:30:50 -0400 Original-Received: from dmz-1.bkk.thaiopensource.com ([203.130.150.188]) by thaiopensource.com (8.12.11/8.11.2) with ESMTP id i8M7UkmF004226; Wed, 22 Sep 2004 14:30:47 +0700 (ICT) Original-Received: from [192.168.0.100] (home-gw.bkk.thaiopensource.com [203.130.150.187]) by dmz-1.bkk.thaiopensource.com (Postfix) with ESMTP id 36E01FA03; Wed, 22 Sep 2004 14:30:34 +0700 (ICT) Original-To: Richard Stallman In-Reply-To: X-Mailer: Ximian Evolution 1.4.6 (1.4.6-2.1thaiopen) X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 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 Xref: main.gmane.org gmane.emacs.devel:27419 X-Report-Spam: http://spam.gmane.org/gmane.emacs.devel:27419 On Wed, 2004-09-22 at 01:31, Richard Stallman wrote: > I misspoke earlier: there's a keystroke for goto to next error, but not > for goto first error. > > C-u C-x ` goes to the first error. C-x ` goes to the first error > when you have not visited any errors. > > If this can be made to do the job, I would definitely prefer it. I like the idea of using a C-u prefix to make the next error command go to the first error. I can definitely use that. I don't see a good way to make it work with C-x `. nxml-mode presents errors using a very different style of UI from compile.el. It's more like what you see in modern IDEs. The closest analog in Emacs in jit-lock. The errors are detected automatically and continuously without the user explicitly calling a compile function (although they can turn it off if they want). It works by installing an after-change-function: things that can be done quickly are done there, the rest is done with an idle-timer. Modifications don't necessarily cause a complete reparse; it works incrementally and after most modifications is usually able to just reparse and revalidate a small part of the buffer. Detected errors are highlighted with an overlay over the exact range of characters that is in error with the error message as a tooltip. The error messages are generally quite short and and designed to make sense in the context of the highlighting of the precise relevant range of characters rather than the whole line or just a position in the line; they wouldn't be very meaningful out of that context. The next error function moves around the current buffer between the highlighted errors. I don't see any way to make compile.el do this. Also I didn't want to rebind C-x ` to my next error function, because I think it will be common to want to run external compiler-like programs on XML files (e.g. an XSLT processor), and a user would want to be able to use C-x ` to step through the errors from that. My error function is currently bound to C-c C-n. Without an arg, it always moves to the first error after point. James