Path: utzoo!mnetor!uunet!husc6!bloom-beacon!think!barmar From: barmar@think.COM (Barry Margolin) Newsgroups: comp.lang.lisp Subject: Re: lisp environments Message-ID: <13731@think.UUCP> Date: 15 Dec 87 17:12:38 GMT References: <487@PT.CS.CMU.EDU> <460@cresswell.quintus.UUCP> Sender: usenet@think.UUCP Reply-To: barmar@sauron.think.com.UUCP (Barry Margolin) Organization: Thinking Machines Corporation, Cambridge, MA Lines: 48 I'm posting this for a friend who used to work for Symbolics; his current employer's policy requires him to post this anonymously: ----------------- As a maintainer of the Symbolics editor subsystem, I did exactly what the gentleman from the netherlands posits. I edited the source of the editor in the editor with immediate modification feedback. In the Symbolics system, all of the language tools used by the compilers are available to the rest of the system via *dynamic linking*. The editor maintains a partial parse of the program in an auxiliary data structure. It uses event counts to update the parse as the user changes the code. The partial parse handles errors, so that you can have intermediate states in which the program is invalid, unlike a structure editor. However, the partial parse permits features like a command that gives the argument requirements for a function indicated by the mouse, highlighting of errors, a mouse click which fetches the source of an indicated function or variable, a mouse click to place a breakpoint in a program, and a set of commands to step through compiler errors finding the precise point of error. (the compiler annotates the actual editor representation if you compile a file from the editor.) These are only the very tip of the iceberg. Its always depressing to see a bunch of people yammering back and forth with a religious dispute instead of finding the compromise position right in front of their noses. ----------------- Now to my own comments on the subject. First of all, I have also edited portions of the Symbolics editor in the editor. Another posting mentioned that only structure editors can automatically provide different commands depending on whether you are editing code or comments, but the Symbolics editor does a great job of this. They have an "Electric Font Lock" and "Electric Shift Lock" modes, which automatically change the typein font and case depending on whether you are typing in code, string literals, or comments, and I don't know what I'd do without "Auto Fill Lisp Comments" and "Fill Long Comment" when typing block comments. They don't actually bother changing key bindings when you are in a comment, but there's no reason they couldn't. --- Barry Margolin Thinking Machines Corp. barmar@think.com seismo!think!barmar