UPDATE.TXT
==========

                  WHAT'S NEW IN CODEWRIGHT 5.0?

Differencing
------------
Several improvements have been made to Codewright's differencing 
feature.

Coloring
You will now see syntax highlighting (ChromaCoding) when viewing 
differences side by side.  The colors indicating which lines have been 
modified, inserted and deleted now appear in the left margin.

Editing 
You can now edit the files as they are displayed for comparison.  Move 
blocks or code from one file to the other, mark lines as deleted, and 
save the result to a new file name.  Modified sections are recompared 
automatically.  A real time saver in performing a merge of two sets of 
revisions.

Intra-line
Most differencers tell you when a line has been changed, and that's it.  
It is up to you to figure out what has changed.  Codewright goes 
farther. It also shows you where the differences are within the line by 
highlighting them.  You'll be amazed how fast this feature works.

Word level
You even get to choose the granularity of the intra-line differencing.  
Codewright will show you each character that has changed.  Sometimes 
this is a little too much information.  At those times, seeing just 
which words have changed is usually sufficient.

Printing
---------
Color and Font
When determining how ChromaCoding will be rendered during printing, you 
may elect to have keywords printed in bold, or if you have a color 
printer you can print the colors as you saw them on the screen, or you 
can have both color and bold keywords.

Macro Assistant
The Macro assistant lets you select those special notations for date, 
page number, and so on from a list and inserts it in the header or 
footer for you.

Searching
---------
Increased Speed
We've increased the speed of searches to up to twenty times faster than 
before.  For most uses the increase will not be that great, but chances 
are you will notice the difference.

Regex Assistant
The regex assistant allows you to select popular regular expression 
constructs from a descriptive list.  The selected regular expression is 
then appended to your search string.

Marks
-----
Named Marks
Marks are not just numbers anymore.  You can now assign a name to the 
mark, to help you remember its purpose.  Standard prompts now accept 
either number or name.  Set an option and you are prompted for a name 
each time you place a bookmark.

Bookmarks Window
Now you can review a list of both local and global bookmarks, and jump 
to their locations whenever you please.  There is now a bookmarks window 
tab on the Project window.

Bookmarks Options
Bookmark Options now occupy their own tab in the Document Preferences 
dialog.  Here you can set how long marks are retained, and whether or 
not to prompt for names.  You can even view and edit the contents of the 
database.

Outline Symbols
---------------
Outline Symbols is a new type of browser to help you investigate and 
navigate code.  It is named Outline Symbols because it uses two new 
system windows:  one called the Outline Window (a tab on the Project 
Window) and the other called the Symbols Window (a tab on the Output 
Window).  We expect the popularity of this type of browsing to outstrip 
Tags and other types of browsing previously offered.  The primary 
reasons for this is that it is constantly updated in the background - no 
compiling required - and it has the flexibility to have broad 
application.  Out of the box, it will work with virtually all languages 
for which we have previously provided support.  C++, Java, Delphi/Pascal 
- even .INI files.

Symbols Database
Symbols are any element of the code for which a parser has been written.  
Typically, these are functions, classes, macros and the like.  You can 
add your own parsers just by creating the proper regular expression.  
Files are scanned using these parsers.  The locations where symbols are 
defined are collected and placed in the symbols database.

What files are scanned
Codewright starts with the member list of the current project.  To this 
it adds any files that are currently loaded, and any other files you 
have manually added to the scan list.  For example, you might want to 
scan MFC symbols, but don't care to include the MFC source files in each 
project.  You just add them to the scan list instead.  It's as easy as 
adding files to a project.

Symbols Window
The Symbols Window allows you to list the location or locations where a 
symbol is defined.  If there is only one location, that location is 
displayed in the window.  If there is more than one, you can select from 
a list of locations.
The Symbols Window is normally used with the Outline Window, to which it 
has a special link.  This allows the Outline Window to pass symbol names 
to the Symbol Window for lookup, thereby automating the process.

Outline Window
The Outline Window displays a hierarchical tree, with each loaded file 
displayed as a root.  As you load files or change edit windows the 
symbols found in that file are displayed beneath that file's name in the 
Outline Window.  A single click on the symbol of interest, and 
information for that symbol is displayed in the Symbols Window.  A 
double click also moves the edit window to the defining location.

Edit Search Path
----------------
Much as DOS uses PATH to tell it where to search for executables, 
Codewright uses its edit search path to find files to load.  It is 
primarily useful when you are using the status line prompt, rather than 
the common dialogs, to open files.

Finds Files
If you specify a filename to load without specifying a path, Codewright 
first looks for that file in the current directory.  If it is not found, 
Codewright looks at the directories on the Edit Search Path for a file 
by that name.

Convenient Interface
You will find the Edit Search Path in the Project Properties dialog, on 
the Directories Tab.  It is a semicolon-separated list of directories 
that you can edit directly.  You may also use the browse button to 
locate a directory and let Codewright automatically add it to the Edit 
Search Path.

Makefiles
---------
Codewright lets you associate a makefile with a project.  This may be a 
Visual C++ Project file, or a Borland makefile.

Creating Parsers
You may add parsers for other kinds of makefiles not supported by 
creating and entering your own regular expression to do so.

Reading Project Members From
Codewright extracts the names of files from this makefile and adds them 
to the list of project members.  This little bit of automation helps 
keep your Codewright project synchronized with your IDE.

Custom Error Parsers
In order to help you track errors by understanding the output of your 
compiler, Codewright needs an error parser for your compiler.  While 
Codewright has built-in error parsers for common compilers, and a 
special DLL for dozens of less common ones, there are still a number of 
compilers that may need an error parser.
You can define an error parser for these compilers, if necessary, on the 
fly by creating a a regular expression.  You can often borrow a regular 
expression from an existing parser for similar output, and tweak it into 
shape.

Decorative Formatting
---------------------
Decorative formatting is an extension of Codewright's Word Wrap feature.  
It is especially useful in creating and maintaining eye-pleasing 
comments in your code.
Decorative formatting is in effect whenever you define a left margin 
greater than column 1.  You can do this on the ruler with your mouse.  
Let us say that you set the left margin to column 4 and the right margin 
for column 70.  You begin typing, and when it comes time for the text to 
wrap to the next line, the text outside of the margins is copied to the 
new line.  That means any pattern of asterisks, slashes, pound signs, or 
what have you on the line are repeated automatically.
As you continue typing after the text has wrapped the text outside the 
margins stays put.  It's almost like magic.

Selective Display
-----------------
Selective display is a feature that assists your focus, or navigation 
within a file by hiding portions of the text that you don't care to see.  
You then move in and out of this mode at will, or open and close 
individual hidden sections.  We have extended this feature in Codewright 
5.0

Multi-level
Multi-level Selective Display means that you can have hidden text within 
hidden text, much like the levels of an outline.  You can promote and 
demote text to un-nest it, or further nest it.

Line Operations
Line operations allow you to select lines that you want to make visible 
or hidden.

Paragraph
Use the Selective Display Paragraph mode to collapse any text file by 
paragraphs.  In this mode, only the first line of each paragraph is 
displayed.

Libraries Dialog
----------------
You may not often need to add a DLL to the Codewright system, perhaps 
only during your initial setup of Codewright.  When you do, the 
Libraries Dialog provides a convenient way to do so.

Supplied
There is a list of DLLs that come with Codewright, but are not required 
by all users.  This dialog lets you check the ones you want to 
automatically load.

User Defined
If you download an add-on, receive one with another programming tool, or 
create an add-on yourself, you can enter the name of the DLL and 
Codewright will load it for you.

Visibility
----------
ChromaCoding
Codewright's language syntax highlighting (ChromaCoding) now allows you 
to color-highlight function names and operators in addition to changed 
lines, comments, keywords, strings and numbers.

Current Line Highlighting
You may elect to have the current line highlighted in color, outlined, 
or both.

Visibles Color
Codewright has long had a "Visibles" feature to let you give a visible 
representation to otherwise invisible whitespace characters.  This 
feature was probably under utilized because of the "messy" appearance it 
created; it was primarily used to help as a diagnostic aid, when you 
needed to see what was where.
Codewright now allows you to assign a special foreground and background 
color to these visibles.  This allows you to choose a combination that 
makes them show up only faintly, to avoid that messy appearance.

Spell Check
-----------
First with a spell checker that allowed you to check only your comments 
and strings, Codewright now allows you to just spell check strings.  
After all, that's the part the user sees.

Correct All, Ignore All
When you find a misspelling, you may elect to correct all such 
misspellings, or to ignore them all.

Keymaps
-------
We have previously offered emulations of other editors, in addition to 
offering a CUA command set: Brief, Epsilon, vi, WordStar, Qedit, and 
others.  We now find that we have added an emulation of our own 
Codewright editor.

CUA/CW CUA Choice
We have updated the CUA keymap to reflect some of the newer mappings 
that have become standard, such as Ctrl-S to save.  For those who do not 
want to re-teach their fingers, we have provided a CUA variant that is 
the same as our old CUA keymap for Codewright.

Sync Technology
---------------
Codewright's ground-breaking efforts to integrate Codewright with 
development environments continues.  Now, in addition to support for 
Microsoft's Visual C++, we offer integration with Microsoft's Developer 
Studio and Borland's Delphi 2.0.  This Sync Technology allows you to 
use a stand-alone editor along with the development environment without 
concern for extra loading and reloading, losing features or edits.

JAVA/HTML Support
-----------------
Java and HTML support was created as an add-on in the middle of the last 
release.  It is now part of the standard release, readily available.  In 
addition, the built-in HTML viewer has been updated to support tables 
and other HTML 3.0 features.  The capability to call up a web browser to 
view the current file has been made part of the standard HTML package.

Name Completion
---------------
Save typing and paging up and down to make sure you have the name of 
that function, variable, or class correct.  Just type part of the name 
and press Ctrl-Space to let Codewright find and insert it for you.

Automatic Brace Alignment
-------------------------
Codewright's new Brace Alignment feature will automatically align any 
left or right brace when you type them.  You can select between several 
popular block indentation styles.

Tip of the Day
--------------
Dozens of tips, compiled by our technical support staff, are presented 
to the user in digestible form when Codewright starts up.

We have also assembled these tips and many specialized "How To" tips 
into a new helpfile called "Codewright FAQ".


1/22/97:V5.0:MD
