 |
| ED for Windows |
Current Release
V4 |
Version
4 Enhancement Highlights
ED for Windows
Version 4 was first released in mid 2001 and is a major rewrite
of ED for Windows V3.x with a broad range of new features and enhancements.
ED V4 builds on our strong reputation of designing and building
first class editing tools. To keep ED at the forefront and meet
the ever demanding needs of our user base we deliver regular updates.
With this continual release cycle we deliver more and more of what
you our customers need in a power packed programmer's editor. Make
sure you have a close look at our Top
11 Features list along with the screens shots to get a quick
feel for what is on offer in V4. Then download our Free
Trial and experience the many great new features in V4 first
hand.
Highlights of Version 4 include:
- Project support greatly simplifies working with related sets of
files. Microsoft VC++ Projects can be opened and used in ED.
- Our new Source Database tracks every function, class,
subroutine etc, and lets you navigate around large complex projects with ease.
Right click on any function call to jump to its definition. Use
the Class View to go to any class, function etc. See the name of
the function you're currently in. Use Regular Expressions to
search the database to quickly find that elusive bit of code. For
C/C++ users right click to jump between a function declaration and
its definition. Simply add files to your project and they appear
in the database. The database is updated in a background thread as
you're editing so it is always up to date.
- Extensive use of multi-threading so complex tasks can run
in the background without interfering with what you're doing.
- Completely new File Difference Analysis which clearly shows what's changes have been made to files.
V4 preview release users have told this is easily the best file
comparison tool around!
- New Style Sheets and Language Setup make it easier to work
with existing languages and support new ones.
- Support for more languages including PHP and PL/SQL.
- Enhanced language sensitive editing capabilities.
- The Last change stamp is now configured as part of Style Sheet
setup. No more editing of ED extension language code. A code
template can be used to add the initial last change stamp.
- Modeless Find, Replace and Find in Files with a new and
much improved regular expression search engine. Searches are considerably
faster.
- Support for multiple Regular expression dialects including VC++,
Posix and native ED. Popup menu for easy selection of RE
operators.
- Find in Files are fully multithreaded and fast. You can search
within a project or across directories on disk.
- Include file access and lookup has been enhanced. A Toolbar
combo box lists all of the include files in the current file and
selecting one opens it. Include file search paths are specified as
part of each Project. You can quickly switch between a source file
and its include file. Include file History is accessible in the
File|Open dialog.
- Completely new Toolbars and Toolbar customization. Add new
toolbars and buttons, create your own bitmaps, assign any sequence
of commands to a button, change button styles between combo box
and drop down list, set your own button tooltips.
- Easier and more flexible configuration and customization.
- Improved Macro capabilities. You can now record Menu and Toolbar
commands as well as keystroke commands. Shift+cursor keys can now
be recorded. Macros are now portable and
can be easily edited.
- New Print engine with support for color printers and Print Preview.
- Help file lookup in 3rd party help files now works with HTML
Help files as well as WinHelp.
- New User interface with Splitter windows, Docked and
floating windows, Document Tab bar, Full Screen support.
- New GUI Ruler with markers and vertical lines for checking text
alignment and measuring columns.
- New Parameter Assistant pops up tooltips showing the parameters
required for functions.
- Mouse wheel support.
- Enhanced keyboard support lets you use any combination of
Alt+Shift+Ctrl and use any key on the keyboard. Keys like Ctrl+I
and TAB are now treated as separate keys.
- Keyboard customization has been simplified, with changes taking
effect immediately the keyboard file is saved.
- Enhanced Menu capabilities. Menu items can issue a series of
commands, along with parameters. Nested menus can be used.
- New Windows XP Style menus.
- File and line size limits have been extended. Files can now have
up to 2,100 million lines.
- Full UNC support and resolution of Samba issues in previous ED
releases.
- PATH and Environment variables can be specified when when
running Compilers.
- Adding Compiler error tracking support is now much easier and is
done through a configuration file using regular expressions.
- Additions to the Extension Language and a new Compiler.
- Drag and drop text across files and applications.
- Enhanced File Open dialog.
- Direct access to the Windows Explorer context menu. Email files,
zip them up etc.
- New docking Files window which gives Windows Explorer style file
access.
- Line number display in the Text Bar.
- DDE Interface enables other applications to drive ED. eg.
Progress.
- New on line manual in HTML Help format.
- ... and so much more.
Version
4.01
Enhancement Highlights in Detail
ED for Windows Version 4 has been a
long time in the making but we are confident you will agree that the wait has been
worthwhile. We have always strived to make ED not only powerful and full-featured but easy
to use at the same time. There is little point having a ton of features if they are
difficult to use. Unfortunately, this basic point seems to have been missed in the
development of so many software products.
As part of the Version 4 development
we have examined every area of ED, taking into account how functions are used, what we can
do to further simplify operations, and going over all of the feedback you have provided.
At the same time we have found ways to implement the new functionality that you want,
without sacrificing the power and ease of operation that you've
previously enjoyed.
OK. Enough waffle! Let's have a look
at some of the new stuff in ED Version 4.
This release of ED starts with a new
32-bit architecture and builds on that to provide the many improvements that you've asked
for. These are some of the improvements that ED Version 4 will deliver:
| This is not an
exhaustive list of features for ED Version 4. Also note that
most of this was written back in 2000 and early 2001 and we've
come a long way since then.
Make sure
you also look at our Top 11 Features
list and screen shots.
|

New Win 32 Architecture
The Win 32 world requires ED to wear
a new face, and to support the new face ED requires a new architecture.
Document View Architecture
ED for Windows Version 4 is written
in C++ using Visual C++, the Microsoft Foundation Classes (MFC) and uses the Document View
Architecture (DVA).
DVA is based on the Model View
Controller (MVC) architecture which provides a clean separation between the document, its
view and controller, where the controller is the command-input mechanism e.g. mouse,
keyboard, menus.
DVA enables multiple views of a
document. In an editor this would be the same document displayed in multiple windows, or
multiple views using splitters in the same window.
By isolating the controller you
remove all hard wired assumptions of what specific keys do and enable flexible end user
keyboard, menu and toolbar configuration. MFC includes the controller with the view, but
ED provides its own controller to remove this limitation and adhere to the MVC
architecture.
DVA is an elegant solution to the
real world problem of viewing and managing data. In ED it provides a clean separation of
tasks and enables us to deliver more functionality with less overhead. It also simplifies
adding new functionality in the future and helps to minimize adversely impacting on the
existing code base.

Docking Windows
One of the more significant new
features in Version 4 is the use of the docking windows architecture. Docking windows
group related sets of views and documents together into separate windows. These
windows can then be docked to any edge of the application frame or floated anywhere on the
screen.

In the screen shot above Compiler
Output, Debug and Find in Files are in one docked window, Projects,
Code Browsers are in another and Skeletons and the Ascii chart are in a
third. The remaining space is used for document views with a splitter
window shown in this screen shot. Toolbars are now dockable and
toolbar customization is considerably enhanced.
| Docked
windows can be floated as shown here. They can also be hidden
and restored with a keypress or menu/toolbar selection.
This
screenshot is the Workspace Bar which includes a Windows
Explorer like Files window, the Project Tree and ClassView
windows.
The
ClassView displays the Source Database and enables you to
quickly jump to any function, procedure, class etc.
Another new feature not shown
here is Full Screen mode which removes all toolbars, menus etc. to provide
maximum editing space. |
 |

Style Sheets
When you work with multiple
languages and compilers you need a straightforward way of establishing custom
configurations and linking these to the files you want to edit.
For example Embedded Systems
developers routinely work with a range of different microprocessors, each with its own
unique assembler language. When they open a file they want it to use the appropriate
language, keyword dictionary and compiler for the target platform. Because most assemblers
use .asm for file extensions how can the editor work out the correct configuration to use
from the filename alone? This is one example of a problem that Version 4's Style Sheets
address.
Put simply Style Sheets enable you
to associate a specific language along with a range of editing options
with a list of file extensions.
To handle the situation where a
language can have various flavors, you can now make use of multiple keyword dictionaries
for each language, instead of just one. So when you open an MFC C++ or 68K Assembler
source file all the appropriate keywords are highlighted and then when you switch to ATL
C++ or 8051 Assembler the dictionaries change and again the correct keywords are
highlighted.
Style sheets are enabled on a
project by project basis ensuring the correct custom configuration is used for
each and every file you work with. The bottom line is a painless and productive way of
working with many languages and their various flavors.

Any number of new Style Sheets can
be defined and existing Style Sheet attributes are easily edited. Style validation ensures
that any given extension can only be enabled in one style sheet at a time. All Style
Sheets are available to all projects, and you simply select the ones you want to use for
each specific project by ticking their checkboxes.
|
Use the context menu to maintain
entries. |
|
Edit Style Sheet Names and their
Extensions in place. |
|
 |
|
 |

Multi-threading
Why should you have to stop work
while some lengthy process takes place? Let's say you need to perform a complex search
across hundreds of files. Most editors make you wait until the search is finished; what a
waste of valuable time!!
With Version 4's extensive use of
multiple threads you can keep working unhindered while these types of tasks take place
seamlessly in the background. Separate threads are used for loading files, displaying
text, running external tools and capturing their output, running long searches, building
function lists and automatically keeping source browser databases up to date. On today's
32bit platforms this level of concurrency should be the norm.

Enhanced Editing
ED's new face and architecture
gives us the opportunity to add new editing features such as an improved Text Bar at the
left and an optional visible right margin. The full-screen editing mode reduces clutter
to a minimum, and text drag and drop is standardized.
Text Bar
| The Text Bar has been enhanced to
included line numbers, and bookmark locations. A vertical line can shown at the right margin
to assist in keeping code within the margin.
New context menu items include the
ability to hide and show scroll bars and set the text bar color. |
 |

Text Selection and Drag and Drop
ED's text selection and drag and
drop code has been completely rewritten. The rewrite addresses various deficiencies and
inconsistencies and adds important new functionality. For example you can now drag and
drop selected text across windows and views. You can also drag and drop text to and from
other applications which support OLE drag and drop.
All of the standard mouse selection
actions are now supported, like using Ctrl+Click+Drag to select text word by word and
Ctrl+Click in the left margin to select the entire file. Following a paste the text cursor
is now optionally placed at the end of the new text. Scrolling during text selection is
now timer based with the speed increasing as you move further outside the frame. The days
of over overshooting the mark have now gone.

Better File Handling
The 32-bit architecture also
provides an opportunity to improve and standardize ED's file handling. Most-recently-used
files will be accessible from the File menu, and the file handling limitations in the
current version of ED will be greatly reduced or eliminated.
- File|Open supports multiple file
selection enabling many files to be opened at one time.
- A new and
enhanced File Open dialog built on top of the MS Common File Open
dialog.
- Files can now have up to
2,100,000,000 lines.
- The maximum line length has been
increased.
- Many hundreds of files can be open at
once.
- Non-mapped Network drives and files
can be accessed.
- On Windows NT, Unix files accessed
via Samba etc. now work correctly.
- The File Menu now includes a list of
most recently opened files.
Some people like
the Windows Common File Open dialog, but we've always felt there was
quite a bit of room for improvement. We decided it was time to switch
from our custom file open dialog, but didn't want to lose the
enhanced functionality it provides. So we sat down and worked out what
we felt were the ingredients necessary to make a truly useful file
open dialog and this is what we've come up with.

- The Selection
Bar on the left makes it easy to switch between files on
disk, history, favourites, function history and files in
projects.
- You can move
amongst your most recently used folders using the MRU
Folders combo box.
- With our new
optional auto-completion you only need type enough characters to
uniquely identify a filename and it will finish the rest for you.
As you type each character the matching set of files is highlighted, as shown above. Ctrl+Space performs auto-completion
even if the option is disabled. Filename auto-completion is a
major time saver when you are opening files.
- The full path
and filename are displayed for the current file. We often find
that the folder name displayed in the Look
in: combo box simply doesn't provide enough information to
let you know precisely where you are.
- Files
of type now come from the new Style Sheets described above.
- Multiple file
selection is fully supported.
- Options
lets you choose how files are opened, whether auto-completion is
enabled etc. See the next screen shot.
- Context menu
to rename, delete, copy files etc.
- The dialog is
resizable on Windows 98 and 2000.


If there is one
thing you probably do more of than anything else in an editor it is
finding stuff and using search and replace. The tools to accommodate
this need to be not only powerful enough for the most complex of
searches but also be flexible and easy to use. We've had a good look at
what was already in ED and studied various similar products, including
the functionality they offer and how they deliver it. To our surprise we
found a lot of shortcomings, especially in the area of ease of use. So
we set out to build a system that we feel will make your life a little
easier.
From the outset we
had a number of design goals including:
- Reduce the
number of dialogs needed for find operations.
- Make the
dialog modeless so you can still edit text or move around while
searching or even change to another document.
- Provide help
with building regular expressions and give good unobtrusive and
immediate feedback on expressions errors.
- Let you see
what a replace will look like before committing to it.
- Make the
dialog smart enough so, for example, the Replace button is disabled
if you are not positioned on a match.
- When search
is set to wrap around in the document, to let you know when you are
back where you started.
- Provide a
comprehensive range of regular expressions operators and support
various styles such as Posix, Visual C++, ED 3.80 and new ED V4.
- Enable basic
search and replace operations without having to use a dialog box
at all.
- Enhance
search commands. eg. A single command to search for the current
word or selection.
- Utilize the new multithreaded architecture
to enhance Search and
Replace.
A key component
of the new search is the combined find and replace modeless dialog.
How often have you had to cancel a replace mid stream, do some editing
and then continue the replace. This repeated opening and closing of
dialogs to perform a single task is a waste of energy and can easily
break your train of thought. A single modeless dialog which enables
you to switch to and from the document at any time delivers a very
effective solution to this common shortcoming. This may sound simple
but we were surprised at how technically challenging it was to do properly.
 |
Separate
buttons for Find Previous and Next.
Replace,
Once and Show
buttons are enabled when you are on a match.
Show
lets you see what a replace looks like before committing to
it. |
This is the new
modeless dialog which is used for all Find and Replace operations.
When you use a Find or Replace command the dialog opens and then
remains open until you close it. Because it is modeless you can switch
between the current document and the dialog at any time. In fact you
can change to a different document or issue any ED command you want so
that you are always in control of the editor and not the other way
around.
| Unfortunately
there is no one standard Regular expression syntax so to
ensure we are compatible with what you use we've included
support for a selection of common styles. We've also made sure
it is easy to add more! |

|
Where do we
stand?
During the
research and analysis phase for the new search we built a capabilities
table for various products. You may find this information interesting.
| |
ED V4 |
CW V6 |
VSE V5 |
VC6 |
|
| Modeless
Find/Replace dialog |
Yes |
No (1) |
No |
No |
|
| Find/Replace dialogs combined |
Yes |
No |
No |
No |
|
| Show replacement |
Yes |
No |
No |
No |
|
| On match feedback while editing |
Yes |
No |
No |
No |
|
| Optional wrap at end |
Yes |
Yes |
Yes |
Yes |
|
| Notification on complete pass |
Yes |
No |
No |
No |
|
| Find current word without dialog |
Yes |
No |
No |
Yes |
|
| Add current word to history |
Yes |
No |
No |
No |
|
| Regular expressions |
Yes |
Yes |
Yes |
Yes |
|
| Validation |
Yes |
Yes(2) |
No |
Yes(3) |
|
| Validation during entry |
Yes |
No |
No |
No |
|
| RE Styles supported |
4(4) |
1 |
3 |
3 |
|
| Minimal & maximal matching |
Yes |
Yes(5) |
Yes |
No |
|
| Find across lines |
Yes |
Yes |
Yes |
No |
|
| Replace can add new lines |
Yes |
Yes |
Yes |
No |
|
| Use Escapes in Replace |
Yes(6) |
Yes |
Yes |
No |
|
| Find character by value |
Yes |
Yes |
Yes |
No |
|
| Match start/end of word |
Yes |
No |
No |
No |
|
| Display Tagged match result |
Yes |
No |
Yes |
No |
|
| Handle zero length matches ok |
Yes |
No(7) |
Yes |
No(8) |
eg. a* |
| Separate group & tag expressions |
Yes |
No |
Yes |
Yes |
eg. () & {} |
| Character class shortcuts |
Yes |
No |
Yes |
Yes |
eg. \s \w |
| Expression shortcuts |
Yes |
No |
Yes |
Yes |
eg. \:q \:k |
| Not expression |
Yes |
No |
Yes(9) |
Yes(8) |
|
| Selection from menu |
Yes |
Yes(10) |
Yes |
Yes |
|
| Search Filters |
35 |
No |
13 |
No |
Ignore comments,
strings etc. |
| 1) Partial. Replacement match dialog is modeless. Changing documents
gets confused. |
| 2) After dialog closed. |
| 3) Many invalid expressions are ignored.
Characters change meaning depending on position. |
| 4) Posix, VC++, EDV4, ED3.8. |
| 5) Minimal and maximal can't be used together in the one expression. |
| 6) ED includes character case conversion escapes. |
| 7) Matches one character instead of zero. |
| 8) Doesn't move to next match. |
| 9) Behaviour seems
strange. |
| 10) Doesn't position
back to editing search string |

Regular Expression
Search
 |
Regular Expression
searching is at the heart of any serious editor. With Version 4 we've again gone back the
drawing board, throwing out our existing code and starting anew. This has allowed us to address a number of
shortcomings, considerably improve performance and deliver a new search engine which can
be safely used in a multi-threaded application.
New regular expressions operators
enable you to:
- Search for text that spans multiple
lines.
- Insert new
lines during replace.
- Search for the shortest or minimal
match in addition to the longest.
- Search for matches at the start or
end of a word.
- Display the
result of tagged expression.
- Search for a hexadecimal value.
- Use
expression shortcuts to search for Strings, C++ identifiers etc.
- ....
The Regular Expression context menu
shown here enables you to select from a range of common expressions
and useful shortcuts.
Support for different
dialects of
regular expressions is also available including Posix, VC++, ED etc. |

Easier Configuration
ED's highly configurable nature
hasn't been changed, but we have removed some restrictions, made configuration easier to
use, and allowed you to tie some aspects of configuration, such as toolbars, to style
sheets.
Color Setup
|
 |
|
 Dip into a color well to quickly select
colors. |
Color setup has been
enhanced with the addition of Color Buttons and Color Wells. The color buttons show the
foreground and background colors for each selected syntax element and the color wells
simplify color selection. All selections are shown on the color buttons, the "Sample
Text" panel and back in any documents which are open.
Color Schemes can be selected on a
Project by Project basis delivering utmost flexibility to meet your viewing needs.

Keyboard, Menu, and Toolbar
Configuration
- Changes to Menus and Keyboards are
processed automatically. No separate compilation step is needed.
- Menus can be nested, and multiple
commands can be assigned to menu items.
- Macros can record commands initiated
from menus.
- Macros now record commands, not
keystrokes so a given macro will work with any keyboard definition.
- Alt+, Shift+, Ctrl+ key modifiers can
be combined in Keyboard definitions. e.g. Ctrl+Alt+PgUp
- More keys are available. All Keypad
keys, Num Lock, Scroll Lock, Print Scrn etc.
- Control keys are now treated
independently of standalone keys. e.g. Ctrl+i is now different to Tab.

|