Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!uwm.edu!cs.utexas.edu!ut-emx!walt.cc.utexas.edu!hcobb From: hcobb@walt.cc.utexas.edu (Henry J. Cobb) Newsgroups: comp.sys.amiga Subject: Re: Should I go commercial? Summary: Editor dreams Keywords: DME editors Message-ID: <20170@ut-emx.UUCP> Date: 26 Oct 89 21:29:52 GMT References: <8910240722.AA22726@postgres.Berkeley.EDU> <11884@mcdphx.phx.mcd.mot.com> Sender: news@ut-emx.UUCP Reply-To: hcobb@walt.cc.utexas.edu (Henry J. Cobb) Followup-To: sender Organization: The University of Texas at Austin, Austin, Texas Lines: 38 I've looked at DME, and its Arexx support looks real familiar. I.e. "I call Arexx macros, they don't call me". This is not a gripe vs DME, everybody else does just the same thing. I have this ideal of an editor: The user types in "edit foo", and then the edit command (which is rather small and easily residentable) checks to see if the manager process is running (there will only be one on any system), if not it starts it up and hands it the command line it was given. It then returns the error result, if any, to the user and exits. The manager process runs all the time at a fairly high priority, waiting for messages. When it is told to edit a file, it first checks to see if any buffer tasks have been assigned to that file, and if so it sends one of them a message to "pop to the front", and then goes back to waiting. It also can receive Arexx messages and acts as a host for Arexx scripts being run by other programs or outside macros. It is the only process in the editor and so is the gateway to the file system. The buffer tasks are each just responceable for one window, and one buffer, but two or more of them can share a buffer and provide two different views into it. When the user makes a save, load or browse request of them they wake up the manager to handle it, but they do they're own editing (search, replace, word-wrap, etc.) through shared code. In addition to the standard cut and paste operations, every buffer is 'posted' to the clipboard device, and so when other programs request the data, the manager asks the buffer task responceable to make it available. Note that this scheme allows independent operations on shared buffers, and will take great advantage of Arexx, without requiring it. Henry J. Cobb hcobb@walt.cc.utexas.edu