\begindata{text,538288956}
\textdsversion{12}
\template{help}
\define{global
}
\define{index
menu:[Title,Index~91]
attr:[FontFace Italic Int Set]}
\define{indexi
menu:[Title,InvisibleIndex~92]
attr:[Script PreviousScriptMovement Point -2]
attr:[FontFace Italic Int Set]}


\chapter{\center{Ptext: An editing package for

Pascal Programmers}}


\section{What Ptext is 

}\leftindent{
Ptext is an editing package for Pascal programmers.  It provides an editing 
interface similar to that used for text files in EZ, but shows the text of 
Pascal programs in a fixed-width font.  Ptext provides keybindings and menu 
features to support indentation of Pascal program code and uses styles 
specified in the ptext template.


An interactive diff package called ezdiff is available for comparing your 
Ptext files.  See the \italic{\helptopic{ez-diff}}  help document for details.

}
\section{Starting Ptext}

\leftindent{
At the Typescript prompt, type "ez \italic{file}.p" or "ez\italic{ file}.pas" 
and press Enter.  Use of a .p or .pas extension tells EZ to load the ptext 
editing package, according to specifications in the global initialization file 
for EZ.  


If you create your own .ezinit file, you can override the global.ezinit file 
or add other file extensions that will load the ptext package.  You can also 
set various parameters of ptext, which are listed in the section below, 
"Customizing Ptext in your .ezinit file."  For details about initialization 
files, see the \italic{\helptopic{initfiles}} help document.

}
\section{How Ptext works}

\leftindent{
When a ptext dataobject (usually a normal Pascal source file) is read in, a 
set of styles are superimposed on it for the convenience of the programmer. 
 Comments are put in italic and Pascal keywords are put in bold.  None of 
these styles are actually written out with the code--they exist only during 
editing.  At the programmer's option, the keywords may be automatically 
lower-cased, upper-cased,  capitalized, or left unaltered.


Ptext adds these keybindings to those provided by EZ:


\bold{The tab key.} Tab has three uses:

\leftindent{
1) If there is a selected region, all the lines within that region will be 
re-indented to what ptext considers the "correct" indentation.  


2) If there is no selected region and the text caret is positioned before any 
text on the current line (within the initial whitespace), then the line will 
be re-indented as above. 


3) If the text caret is positioned after some non-whitespace text on the line, 
it will insert enough whitespace to move to the caret to the next tab column. 
 Tab columns are positioned at multiples of four.  Any existing whitespace at 
the caret position will be counted as if it were inserted (so the tab key will 
skip over whitespace to the next tab column if it is sitting on whitespace). }


\bold{The Linefeed (^J) key.}   Linefeed does two things:  


\leftindent{1) It re-indents the current line, just in case it needs to be 
fixed up (since sometimes the indentation after typing something is different 
than without it, i.e., else). 


2) It inserts a newline, and then inserts the correct indentation for the new 
line (moving the caret to that point).  }


\bold{Note:} When the ptext package inserts whitespace, it automatically 
inserts the correct combination of tab and space characters, replacing spaces 
by tabs when possible without changing the look of the line.  (This applies 
unless the ptext-use-tabs parameter is set to 0.  See below.)}


\section{Pop-up Menu Meanings}

\leftindent{
In addition to the regular EZ menu options, Ptext supplies a fourth menu, the 
Pascal-2 Text menu.  It contains two options:

\leftindent{
\bold{Redo Styles:}  Invokes the "Redo Pascal Styles" function which will redo 
the styles in the ptext dataobject that is displayed. 


\bold{Indent line/region:}  Equivalent to pressing the tab key.

 }}\section{

Customizing Ptext in your .ezinit file}

\leftindent{
Ptext has several parameters controlling its behavior which you can set in 
your own .ezinit file.  They are listed in bold with the default setting  in 
italic:  


\leftindent{\bold{ptext-brace-indent  \italic{0} }

Controls indentation of braces at the start of a line.


\bold{ptext-use-tabs\italic{  1}}

If 0, don't use tabs for whitespace.


\bold{ptext-cont-indent  }\italic{\bold{4}}    

Controls indentation of continued single statements.


\bold{\bold{ptext-level-indent}  \italic{4}}  

Controls indentation of nested block statements.


\bold{\bold{ptext-case-level-indent}}\bold{ \italic{8}}  

Controls indentation of statements within a case statement.


\bold{ptext-id-style}  \italic{\bold{capit}}

Controls automatic case-conversion of keywords.  May be any of \italic{upper} 
(convert keywords to all caps), \italic{lower} (convert keywords to all 
lowercase), \italic{capit} (capitalized all keywords), or \italic{plain} 
(leave all keywords untouched).}


You should put each of the parameters you want to change at the end of each 
addfiletype to which it applies.  For example:


\typewriter{\smaller{addfiletype .p ptext 
"ptext-level-indent=3;ptext-id-style=lower"}}}


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

\leftindent{\italic{\helptopic{mtext}}}

\leftindent{\italic{\helptopic{ez}

\helptopic{ez-diff}       }  (An interactive diff package for EZ)

\italic{\helptopic{initfiles}}}


\begindata{bp,537558784}
\enddata{bp,537558784}
\view{bpv,537558784,51,0,0}
Copyright 1992 Carnegie Mellon University and IBM.  All rights reserved.

\smaller{\smaller{$Disclaimer: This software is part of version 6.1 of the 

Andrew User Interface System and is 

the property of IBM, Carnegie Mellon University, 

and the other copyright holders.  The source 

code of this version is for the sole use of 

the individual named in ./config/allsys.h.  

This source code is not to be redistributed.  

Binary object code compiled or derived from 

these sources is not to be distributed to non-

members.  Members may have additional 

distribution rights granted by prior written 

permission of Carnegie Mellon University.



IBM, CARNEGIE MELLON UNIVERSITY, 

AND THE OTHER COPYRIGHT HOLDERS

 DISCLAIM ALL WARRANTIES WITH 

REGARD TO THIS SOFTWARE, INCLUDING 

ALL IMPLIED WARRANTIES OF MERCHANT-

ABILITY AND FITNESS. IN 

NO EVENT SHALL  IBM, CARNEGIE 

MELLON UNIVERSITY, OR ANY OTHER 

COPYRIGHT HOLDER BE LIABLE FOR 

ANY SPECIAL, INDIRECT OR CONSE-

QUENTIAL 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,538288956}
