\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}
