From mboxrd@z Thu Jan 1 00:00:00 1970 Path: main.gmane.org!not-for-mail From: Joe Corneli Newsgroups: gmane.emacs.devel Subject: Re: yet another todo editing system Date: Sun, 15 Jun 2003 20:44:24 -0500 (CDT) Sender: emacs-devel-bounces+emacs-devel=quimby.gnus.org@gnu.org Message-ID: References: NNTP-Posting-Host: main.gmane.org Mime-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Trace: main.gmane.org 1055727784 21900 80.91.224.249 (16 Jun 2003 01:43:04 GMT) X-Complaints-To: usenet@main.gmane.org NNTP-Posting-Date: Mon, 16 Jun 2003 01:43:04 +0000 (UTC) Cc: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+emacs-devel=quimby.gnus.org@gnu.org Mon Jun 16 03:43:00 2003 Return-path: Original-Received: from quimby.gnus.org ([80.91.224.244]) by main.gmane.org with esmtp (Exim 3.35 #1 (Debian)) id 19Rj1Q-0005go-00 for ; Mon, 16 Jun 2003 03:43:00 +0200 Original-Received: from monty-python.gnu.org ([199.232.76.173]) by quimby.gnus.org with esmtp (Exim 3.12 #1 (Debian)) id 19RjOc-0005Bf-00 for ; Mon, 16 Jun 2003 04:06:58 +0200 Original-Received: from localhost ([127.0.0.1] helo=monty-python.gnu.org) by monty-python.gnu.org with esmtp (Exim 4.20) id 19Rj3G-0006gf-W3 for emacs-devel@quimby.gnus.org; Sun, 15 Jun 2003 21:44:55 -0400 Original-Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.20) id 19Rj2s-0006XF-0a for emacs-devel@gnu.org; Sun, 15 Jun 2003 21:44:30 -0400 Original-Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.20) id 19Rj2o-0006Mu-6t for emacs-devel@gnu.org; Sun, 15 Jun 2003 21:44:28 -0400 Original-Received: from dell3.ma.utexas.edu ([146.6.139.124]) by monty-python.gnu.org with esmtp (Exim 4.20) id 19Rj2n-0006JK-Fa; Sun, 15 Jun 2003 21:44:25 -0400 Original-Received: from linux170.ma.utexas.edu (jcorneli@linux170.ma.utexas.edu [146.6.139.158]) by dell3.ma.utexas.edu (8.11.3/8.10.2) with ESMTP id h5G1iO323593; Sun, 15 Jun 2003 20:44:24 -0500 X-Sender: jcorneli@linux170.ma.utexas.edu Original-To: Richard Stallman In-Reply-To: X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1b5 Precedence: list List-Id: Emacs development discussions. List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , Errors-To: emacs-devel-bounces+emacs-devel=quimby.gnus.org@gnu.org Xref: main.gmane.org gmane.emacs.devel:15120 X-Report-Spam: http://spam.gmane.org/gmane.emacs.devel:15120 > o By exporting all the lists in a "path" (as in, math_hw*), you > can build hypertext outlines. > > I don't understand what that means in concrete terms. So I cannot > tell whether it would be easy or hard to make Outline mode do this > too. I mean that you can export every Todo file with a certain prefix to html at once very easily. The command line expression that will do this is % todo -l math_hw* -html If the files you are exporting are linked together in an outline-like structure (e.g. math_hw.A, math_hw.A.1, math_hw.A.2, math_hw.B, etc., with the appropriate links from math_hw.A to math_hw.A.1 and math_hw.A.2, etc.) then the output from the command quoted above will be several HTML pages that give an outline of the math_hw tree. A concrete example of a "hypertext outline" is on my webpage at www.ma.utexas.edu/~jcorneli/inventory/inventory.html this has a catalog of the things in my apartment shortly after moving in. > I.e. forward links do not appear automatically; backwards links as > discussed in my eariler email to Kai do appear automatically. > > I am not sure what "forward links" and "backward links" mean in this > context. Outline mode does not have anything to do with links. Ok, here is an example: www.ma.utexas.edu/~jcorneli/inventory/inventory.library.html contains a "forward link" to www.ma.utexas.edu/~jcorneli/inventory/inventory.library.bookcase.html (Only "forward links" have been exported to HTML.) In my Todo working directory there is a file called inventory.library.bookcase.clients that contains exactly one line, viz., < > inventory.library <> This "backwards link" represents the fact that "inventory.library links to inventory.library.bookcase". If I added a link to inventory.library.bookcase from the file foo, the line < > foo <> would be added automatically to the file inventory.library.bookcase.clients to represent the new "client", foo. Todo has a lot to do with links! You can use Todo to build a hypertext network with any kind of "graph structure". Importantly, not just a dendritic structure like you find in outlines. The "backwards links" are very useful for navigating though the weird hypertext structures that you can build. > It might turn out to be useful for editing > code, since you could easily see which functions use the current > function -- though of course you can do that with plain ol' grep too. > > A feature for browsing programs certainly ought to be part of Emacs. One way to think about this feature would be to instantiate a function prototype (a b c) -- as in, (insert &rest ARGS) -- as something like this: ((a "link a") (b "link b") (c "link c")) -- where "link a" points to whatever fills the first slot of the the prototype in this instantiation. The "link bla" stuff would be more-or-less invisible when you were browsing, but C- would take you from a link to what actually goes there. Eg. you might see something like (insert _COPYING_) in the code. C- would take you from "insert" to its definition or from "_COPYING_" to its definition. Or if you write out the text of "COPYING", you could press M- to collapse the text down to a link. (This example is probably pretty silly - but it gives an example for how a "code browser" might work.) Joe