\begindata{text,538334184} \textdsversion{12} \template{help} \define{global } \chapter{Ltext: a LISP editing package} \section{Introduction} \leftindent{Ltext is an editing package for \helptopic{EZ} that is tailored specifically for editing lisp code. In addition to all the normal EZ text editing facilities, ltext introduces three new features: parenthesis balancing, automatic code indentation, and highlighting of definitions and comments.} \section{Using Ltext } \leftindent{Before you can use ltext, you must add the following lines to your .ezinit file: \example{# Bind up lisp mode. addfiletype .lsp ltext "ltext-use-tabs=0" addfiletype .lisp ltext "ltext-use-tabs=0" } For more information on .ezinit and init files in general, please refer to the \italic{ \helptopic{initfiles} } help document. Note: you have to quit and restart EZ before any new changes to init files are used.} \section{Parenthesis Balancing} \leftindent{Whenever you type a closing parenthesis, ltext will search backwards for the corresponding open parenthesis. If it cannot find one, a short message to that effect is displayed in the message line at the bottom of the screen. If a matching parenthesis is found, and it is still on the screen, all the text between the two parentheses will be highlighted. If the open parenthesis is no longer on the screen, the text of the line it is on will be displayed in the message line. If you continue typing, new text will be inserted at the end of the selection region. Therefore, you will not have to change your typing habits when using ltext.} \section{Automatic Code Indentation } \leftindent{At the end of a line, pressing the line feed key will act just like pressing the enter or return key, except that the cursor will be positioned on the next line in the ``correct'' place for additional code. Also, pressing the tab key when the cursor is at the beginning of a line will indent any code on that line. If the line is empty, the cursor will be put in the right spot. If any text is selected when the tab key is pressed, the selected text will be indented instead of the current line. This is very useful in conjunction with the parenthesis balancer, because the parenthesis balancer selects all the text inside the matching parentheses. Therefore, it's simple to indent a whole function by pressing tab right after typing the last closing parenthesis. Note: If your keyboard does not have a tab or line feed key, they can be simulated by typing control-I and control-J respectively. The \bold{Indent current line/region} option on the \italic{Ltext} menu can also be used.} \section{Highlighting of Definitions and Comments } \leftindent{Whenever a lisp file is read in by ltext, it highlights any definitions or comments. Any top level lisp form that starts with defun, defmacro, or any other def-something is considered a definition. The symbol that follows the defun is considered the name of the function. If such a symbol can be found, it is displayed in a bold font face. Anywhere a comment is found, it is displayed in an italic, variable width font. Because ltext only checks the file for definitions and comments when it is read in, new text will all be in the default font face. If you wish ltext to check for definitions and comments again, you can select the \bold{Redo Lisp Styles} on the \italic{Ltext} menu.} \section{Related Tools} Select (highlight) one of the italicized names and choose "Show Help on Selected Word" from the pop-up menu to see the help file for: \leftindent{\italic{\helptopic{ctext}}} \leftindent{\italic{\helptopic{ez} \helptopic{ez-diff} } (An interactive diff package for EZ)\italic{ \helptopic{initfiles} \helptopic{mtext} \helptopic{ptext}}} \begindata{bp,537558784} \enddata{bp,537558784} \view{bpv,537558784,68,0,0} Copyright 1992 Carnegie Mellon University and IBM. All rights reserved. \smaller{\smaller{$Disclaimer: Permission to use, copy, modify, and distribute this software and its documentation for any purpose is hereby granted without fee, provided that the above copyright notice appear in all copies and that both that copyright notice, this permission notice, and the following disclaimer appear in supporting documentation, and that the names of IBM, Carnegie Mellon University, and other copyright holders, not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission. IBM, CARNEGIE MELLON UNIVERSITY, AND THE OTHER COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL IBM, CARNEGIE MELLON UNIVERSITY, OR ANY OTHER COPYRIGHT HOLDER BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. $ }}\enddata{text,538334184}