From mboxrd@z Thu Jan 1 00:00:00 1970 Path: main.gmane.org!not-for-mail From: Oliver Scholz Newsgroups: gmane.emacs.devel Subject: Re: enriched-mode and switching major modes. Date: Sun, 19 Sep 2004 13:07:05 +0200 Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Message-ID: References: <200409042358.i84Nwjt19152@raven.dms.auburn.edu> <87llfn5ihw.fsf@emacswiki.org> NNTP-Posting-Host: deer.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Trace: sea.gmane.org 1095592105 11827 80.91.229.6 (19 Sep 2004 11:08:25 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Sun, 19 Sep 2004 11:08:25 +0000 (UTC) Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sun Sep 19 13:08:15 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 1C8zYF-0006Zx-00 for ; Sun, 19 Sep 2004 13:08:15 +0200 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.33) id 1C8ze4-0000vG-F2 for ged-emacs-devel@m.gmane.org; Sun, 19 Sep 2004 07:14:16 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.33) id 1C8zdw-0000uq-VR for emacs-devel@gnu.org; Sun, 19 Sep 2004 07:14:09 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.33) id 1C8zdv-0000uP-5Q for emacs-devel@gnu.org; Sun, 19 Sep 2004 07:14:08 -0400 Original-Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.33) id 1C8zdv-0000uM-20 for emacs-devel@gnu.org; Sun, 19 Sep 2004 07:14:07 -0400 Original-Received: from [213.165.64.20] (helo=mail.gmx.net) by monty-python.gnu.org with smtp (Exim 4.34) id 1C8zXR-00034u-0Z for emacs-devel@gnu.org; Sun, 19 Sep 2004 07:07:26 -0400 Original-Received: (qmail 27996 invoked by uid 65534); 19 Sep 2004 11:07:23 -0000 Original-Received: from dsl-082-082-143-025.arcor-ip.net (EHLO USER-2MOEN8BWBA.gmx.de) (82.82.143.25) by mail.gmx.net (mp020) with SMTP; 19 Sep 2004 13:07:23 +0200 X-Authenticated: #1497658 Original-To: bob@rattlesnake.com, emacs-devel@gnu.org In-Reply-To: (Robert J. Chassell's message of "Sat, 18 Sep 2004 23:05:18 +0000 (UTC)") X-Attribution: os X-Face: "HgH2sgK|bfH$; PiOJI6|qUCf.ve<51_Od(%ynHr?=>znn#~#oS>",F%B8&\vus),2AsPYb -n>PgddtGEn}s7kH?7kH{P_~vu?]OvVN^qD(L)>G^gDCl(U9n{:d>'DkilN!_K"eNzjrtI4Ya6; Td% IZGMbJ{lawG+'J>QXPZD&TwWU@^~A}f^zAb[Ru;CT(UA]c& User-Agent: Gnus/5.1006 (Gnus v5.10.6) Emacs/21.3.50 (windows-nt) 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:27274 X-Report-Spam: http://spam.gmane.org/gmane.emacs.devel:27274 "Robert J. Chassell" writes: > ... When working with a document in what you call the surface > expression, then it would be nice, if a command toggle would show > what you call the deep representation of a paragraph (a block box) > or a region. Then you could make changes to that and issue the > command again to get the updated surface representation. > > If I understand you rightly, the idea here is that you look at one of > the surface representations is a read-only display and maintain the > same position in the read-write deep representation buffer. You can > either keep the two buffers visible at the same time or switch from > one to the other. Well, no. The idea is rather that you "fold" and "unfold" parts of a buffer. Say, you edit the surface expression of a HTML document; then you "unfold" the surface expression of a table and edit the HMTL code (the deep representation) of that table directly. The rest of the document stays in its surface expression. If you "fold" the table again, you come to see the updated surface expression of the table. `preview-latex' works similar (to a certain extent). You edit the LaTeX source (the deep representation), but `preview-latex' will display certain (configurable) parts of it, such as tables, formulas etc. in their surface expression /instead/ of the deep representation /in the same buffer/. If you want to edit the formula, you issue a command to get the deep representation again. My idea is to have /both/ the deep representation and the surface expression read-write, as you say. Again: I have not worked this out. There may be pitfalls; I will spend thought on this only when everything else is ready. There are some fundamental differences to editing LaTeX with preview-latex. But it is too early too worry about it. There is btw. an interesting difference in our terminology. What you call "the deep representation" is indeed what I call the "encoded document file" and your "surface expression" is my "visual (aural) appearance". But it seems to me that the emphasis expressed in the choice of words is different; not better or worse, just different. In the editing model that I pursue various deep representations (as well as various surface expression) are just instances of an abstract document. In your editing model we have a particular deep representation and a surface expression for that; a read-write surface expression would just be another means to edit the deep representation: Editing the deep representation is what one really wants in this editing model. Contrary to that, in the editing model I prefer the deep representation is just a means to freeze the abstract document on disc or to transfer it to another person[1]. I think that some people would prefer your view, and so it seems a good idea to me to spend some thought---when the time is ripe---on how both could be made compatible, so that people can get the best of both worlds at their choice. This is another area where Emacs could excel compared to traditional word processors. > This sounds good. Moreover, it is less complex than writing a program > to edit a sufficiently complex surface expression. Hey! I am the guy who desperately wants to edit really complex surface expressions. :-) > Generally, I would expect you to look at at least two different > surface expressions at the same time, such as Info and DVI. This way > you could avoid accidentally focusing too much on just one output > format. With the deep representation, this means three visible > windows. You might set things up so that by default a frame is laid > out with three windows above each other. [...] This is quite different. David Kastrup has written a paper discussing the merits of various preview models, which could be of interest here. I don't recall the URL, though. Oliver Footnotes: [1] There is an interesting analogy to what Emacs provides at the character level. I found out that my terminology corresponds to the structure of Emacs' handling of character encoding. But there is not enough space left on this e-mail to prove that statement. -- Oliver Scholz Jour de la Raison de l'Année 212 de la Révolution Ostendstr. 61 Liberté, Egalité, Fraternité! 60314 Frankfurt a. M.