PrEditor - History

Why I wrote PrEditor

By John Young

I originally wrote PrEditor because my work involved a lot of assembler coding (remember that?) and all my favourite editors simply showed all the assembler text in flat colour, or worse still coloured it as if for C/C++. I tended to switch between assemblers quite a bit and used to get frustrated when my "ora" (MELPS 740) would cause an assembler error when it really wanted an "or a" in Z80.

My answer to this problem was to write my own configurable syntax colouring editor. Since then I've found that I can use it for C/C++, Java (which I've yet to use in anger), Perl, and various assemblers. I found also that I could syntax colour my syntax configuration files! It can easily be adapted for Pascal, Ada, and for scripting languages like Perl (DOS batch files?).

Once I had the bare-bones of an editor, and having realised that the editor is the main tool that I was going to use in my job as a programmer, I started adding features to it.

Design goals

Language independence

I have tried to make PrEditor as language independent as possible, so that it behaves the same way for C++ projects and for Perl projects. I wanted to avoid the situation where there is one editor for one language and one for another, and having to relearn the keystrokes for each.

Make the programmers job easy

This is an obvious one. I make my living from programming and I want my job to be as easy as possible.

Create an editor that is configurable

By allowing users to configure keyboard, menu, and toolbars easily, the user feels that s/he is in control - which, of course, they are.

Milestones

Version 2.1 (build 1024) released 27 June 2005

Press release...

13 June 2005 build 1021

     ! Current working directory is now remembered between project 
       sessions.
     ! FTP dialog now has an icon.
     - Fixed bug where project filenames with HTML entities caused crashes.
     - Fixed bug with tags language specific tag type mappings.
     - Fixed bug where PrEditor occasionally crashed when overriding the 
       syntax colouring setting of a file.
1 December 2004 build 1011
     + Added strpos, strrpos, strcmp, stricmp, strlen, strupr, strlwr,
       atoi, atof, and substr methods.
     - Fixed buffer overflow bug with FTP save.
27 October 2004 build 1007
     + The write time of projects is now logged.
     + Improved PMAC to support arrays.
     ! Now cache colour coding for each line that speeds up redrawing on 
       very long lines.
     - Fixed problem with reloading files.
     - Fixed problem when recording a macro within a macro.
10 October 2004 build 1005
     + Added GetSelection(), GetLineCount(), and GetLine() to PMAC
     + Added better run-time exception handling for PMAC parsing and 
       running.
     + Added record support in PMAC.
     - Fixed crash in PMAC parser.
9 October 2004 build 1004
     + Improved the index generation for the HTMLHelp.
     + HTMLHelp updated.
     + Regression tests updated.
     + Added Tags toolbar and Tags drop-down combo.
     + Added built-in function sprintf() to PMAC
     + Added 'Type' to tags dialog.
     + Implemented support in PMAC for 'for', 'while', 'do', 'continue', 
       'break', 'switch', 'case', 'default', 'struct', initialing static 
       data variables, user defined method support added.
     ! Changed the tags update to be done in the OnIdle() so's not to lock 
       PrEditor during the update.
     ! Changed the HTML Export function to export the selection (or the 
       whole document if there is no selection), and changed colouring to
       use CSS style tags.
15 August 2004 build 995
     + Added the tags toolbar with tags drop-down.
     + Added 'Type' to the tags list dialog.
     + Export HTML function now can export a portion of a file (the 
       selection).
     + Added support for PMAC 'if' statements.
     + Added support for PMAC scope support.
     ! Export HTML function now uses <style> tags to control the 
       appearance of HTML files, rather than the deprecated <FONT< tag.
     ! Changed tags tree update to be done during idle cycles so that it
       doesn't freeze up the GUI when updating large projects.
     ! Now checks that a file saved as something is not the same as a file
          that is already open.  The user is prompted before saving.
     - Can no longer edit tags on the tags tree.
     - Tags tree now jumps when RETURN is pressed.
     - Empty file names no longer added to the history list.
     - Fixed problem with the display of a selection which shows itself 
       only under XP.
     - The autosave file (#...#) is now deleted when a file is reloaded.
31 May 2004 build 992
     + Properties dialog improved to separate last saved time from opened 
       time and actual size from file size.
     + Line format stored properly when typing RETURN.
     + Preferences now allow user to specify characters to be used for the 
       display of unprintable characters.
     + Added a Dump command to dump the view & doc context to the log file.
       This function is for assisting with debugging.
     + FTP files are now reloaded on startup (can be disabled in 
       preferences).
     + The FTP transfer list can now be cleared (new right click menu on 
       transfer list control).
     + File Insert and File Reload commands added.
     + Macros can now be called in the 'Repeat Last' command.
     ! FTP performance improved.
     ! Tabify now only converts two or more spaces to tabs.
     - View now maintains line position when switching to line-wrap mode, 
       or changing size when in line-wrap mode.
     - Fixed bug where Preferences -> File Associations appeared to be 
       applied twice (on 'Apply' and again on 'OK').
     - Column order of the Windows and History dialogs are now saved from 
       session to session and the date columns are now sorted correctly.
     - The "Highlight Find Text" preference option now really disables
       highlighting of text.
     - Fixed bug where FTP files were being reloaded every second.
     - Fixed bug where the caret sometimes disappeared after scrolling.
     - Fixed bug where project tools and user tools could not appear on the 
       same menu (user tools would be disabled).
     - Fixed memory leak in FTP upload.
     - Fixed memory leak in Tags tree.
     - Fixed bug where double-clicking on error lines sends focus to the 
       view window properly.
     - Fixed occasional crash in FTP (race condition on transfer list).
     - Fixed problem with the caret occassionally disappearing when 
       scrolling horizontally.
27 March 2004 build 987
     + FTP files are now allowed in projects.  FTP files can also be 
       automatically reloaded on start-up and are added to the most recent 
       files list.
     + Can now disable the sometimes annoying FTP output window when 
       opening or saving FTP files.
     + Updated the FTP dialog so that the focus goes to the right place 
       when retrieving directory listings.
     + Project 'Add Files' dialog now has a history drop-down selection.
     + Can now edit FTP profiles tree items by clicking on an item.
     ! Speeded up the transfer of FTP data.  Most noticable on big files 
       (> 1Mb).  One 10Mb file transfer time came down from 160 secs to 13 
       secs.
     ! Re-arranged the FTP / Sockets files in preparation for allowing HTTP 
       functionality.
     - Fixed error in menu text 'Insert new project' -> 'Insert existing 
       project' on Project menu (when no text files are open).
     - Fixed crash when tags were being updated.
     - The 'FindText' command can now be recorded in a macro.
     - Fixed problem with ExportToHTML function when exporting HTML to 
       HTML.
     - Fixed problem where OpenFileUnderCursor was looking at the wrong 
       line if lines above it were wrapped.
     - Fixed PMAC problem where strings delimitted with ' were accepted.
4 March 2004 build 985
     + Fixed file encryption functionality.  Files can now be saved as 
       encrypted and decrypted accurately.
     + Added 'firstline' syntax determination functionality.
     ! The root project is now set as modified if the active project is 
       changed.
     + Tags implementation cleaned up and lots of bugs fixed.  Tree now 
       reports better what it is doing.  Tags are now dumped to the TEMP 
       directory.
     + Implemented Jump To Tag function.
     + Bookmarks are now remembered across sessions (for files in the 
       history pool).
     + Updated the syntax determination to accept filenames like 
       'Makefile'.
     ! Changed the PrEditor start-up sequence so that it doesn't pop up a
       warning dialog each time a file is not found.  Instead it gathers up 
       all the files and reports it once.
     ! Downgraded the priority of the tags update thread to stop it from 
       grinding down the system to a halt during tag updates.
     - Fixed incorrect reporting of Find-in-files (when Addition Files was 
       used.
     - Fixed buggette in Find-in-files where if there was a space before a 
       file spec, then that file spec was ignored.
     - Fixed minor memory leak in Project Settings (commands).
     - Fixed memory leak in Tags tree.
     - Fixed bug in loading project files where the pathname was getting 
       duplicated if specify with / separators in one and \ separators in 
       the other.
     - Fixed a bug where the syntax colouring wasn't coloured properly if 
       the first line of the file was not a comment.
     - Fixed annoyance where if the autosave file couldn't be saved (no 
       permissions, say), the warning doesn't come once a second.
     - RepeatAll() now works in macros.
1 February 2004 build 968
     + Added file encryption functionality.
     ! Fixed up more of the tags functionality.
     . Made changes to make PrEditor UNICODE compatible.
4 January 2004 build 966
     - Fixed bug in getting the syntax context from the last 300 lines.
     - Fixed bug in perl syntax parsing where a division operator is 
       mistaken for the start of a regex (#291).
     - Fixed another bug in perl syntax parsing where different start / 
       stop regex delimitters are used (#128).
     - Fixed bug where embedded match delimitters were not being matched 
       properly.  For example, in pascal 'begin' and 'end' are matches, but
       words like 'amend' (with 'end' embedded), would fool the parser.
     - Fixed a bug where the first line of a new file was not displayed 
       until a RETURN was pressed.
25 November 2003 build 963
     + Added 'File Export' function (for HTML output).
     + Added macro methods GetTitle(), GetPath(), and SetWordWrap().
     ! Speeded up the syntax colouring of big files.  The context is now 
       taken from the last 300 lines (stored in the registry).
     ! Changed the syntax file extention to be case sensitive.  This means
       that '.C' files can be configured as C++ files, and '.c' files as 
       'C' files.
     - Fixed bug where F4 doesn't jump to the error line when the compiler
       outputs a line like... ".\Subdir\SourceFile.cpp".
     - Bugs fixed for Autosave (on undo all).
     - Fixed bug with printing (sometimes did not print all the pages).
     - Fixed crash in PMAC macro compiler.
     - Fixed a memory leak in the PMAC macro compiler.
1 September 2003
     + Backup file prefix added.
     ! Preferences 'Backup' renamed to 'Saving'.
     - Bugs fixed on Autosave (for new files and for deleting the autosave 
       file).
17 August 2003
     + Autosave with crash-recovery added.
     + Tags support added (with class view window).
     + Enhanced syntax synchronisation to allow faster drawing options.
     + Made 'character' the same as 'string' in the .syntax file, and 
       expanded the number of string delimiters from 1 to as many as you 
       want!
     + Additional thread logging - process ID added to log and each thread 
       now reports when it starts and stops.
     ! Startup sequence changed (so that warning notices appear after the 
       main frame).
     - Fixed screen update when configuration files are reloaded - new 
       keywords are updated immediately instead of whenever a return is 
       pressed.

Version 2.0 (build 948) released 3 August 2003

Press release...

14 May 2003 build 946

+ Added mouse wheel support.  Some Windows versions don't support this 
  very well, so PrEditor now implements it instead.
- Fixed nasty resource problem when opening an FTP connection to a 
  directory with lots of files.
+ Updated and tidied up security code (corrected links to web-site, 
  etc.).  Certain functionality gets disabled on un-registered 
  instances under certain circumstances.
- Fixed bug with creating output windows for user tools.
+ Setup can now detect if PrEditor is running and warn.
+ Moved registry entries from "Young Associates" to "Thistle Software" 
  and added code to migrate v1.x reg entries.
- Fix a bug where added projects were not set as active and the title 
  not updated properly.
+ Updated the 'Format' toolbar to include un/indent and line-/word- 
  wrap buttons.
+ Improved the dynamic menu creation.  It is now updated properly after 
  customise mode is used.
. Changed the project environment variable initialisation.  To add to 
  the existing variable, the %ENV% macro now should be used.
- Fixed security hole where the FTP password was being stored in plain 
  text in the registry history items.
- Fixed problem with replacing the selection in OVR mode.

4 December 2002 build 926

+ ActivateProjectSelector, ActivateConfigSelector, and ActivateFindTool 
  added.
+ User name added to the status line for FTP files.
+ Insert project fixed.
+ Print margins added + print header & footer appearances added.
+ Help buttons added and hooked up.
+ Syntax file include file processing improved (now allows spaces, ', " 
  and < > for delimiters).
+ Changing the file format now sets the modify flag.
+ Word-wrap added.
+ 'true' and 'false' added to the macro language.
+ Better logging for macros.
+ Added constant (literal) support.
- Fixed bug in Find Combo tool.
- Reload last project bug fixed.
- FTP dialog divider is now stretchy as well.
- FTP session leak fixed.
- Various multi-project related bugs fixed.
- Divide-by-zero crash when changing the view size fixed.
- Macro memory leak plugged.
- Fixed bug with macro identifier names and preprocessor lines.

12 Septemper 2002 build 911

+ Support of the -macro command line option added.  PrEditor can now be 
  started and automatically run a macro.
+ Files are now checked if they are changed (externally) only when the 
  individual document is activated, instead of all of them at once.
+ Configuration files are now properly loaded after the customisation 
  dialog closes.
+ The status bar now shows the full path name of the current file, 
  instead of the un-informative 'Ready' text.
+ New commands added: AppExit(), FileSaveAs().
. Support for a centralise command definition file added.  A perl 
  script now generates the appropriate header files, and docco files 
  from this file "PrEditorCmds.source".
+ Better reporting on errors in menu definition files.
+ Started word-wrap functionality.
- Language menu now owned by the Syntax List, rather than each 
  individual document.  Makes re-loading easier, and cuts down on the 
  menu resource load.  It also seems to have fixed a bug where the 
  menus stop working (ulp!).
- Fixed a problem where project files with a "./" prefix, were treated
  differently from the same file without the prefix.
- Fixed bug where project tree branches weren't being moved / copied
  properly.
- Temporarily disabled the nag screen (because it wasn't working 
  right).
- Fixed a crash where the find text highlighter got things wrong and 
  tried to search in places where there wasn't any text.
- Fixed problem with the FindPrev command.
- Fixed problem where the find position was way off-screen when line-
  wrap mode was being used.
- Fixed bug where the selection was still shown after undoing some 
  commands.
- Fixed bug where ScrollUp/Down didn't work when in line-wrap mode.
- Fixed a crash when macros were being compiled / run.
- Fixed problem with the macros where the names were being forced to 
  lower-case.  The filename / macro names are now in the correct case.
- Fixed a problem when trying to run a, say, "html\CommentOut" macro,
  from within a macro.
+ Macro .lst and .map files are now placed in the Windows TEMP 
  directory, rather than cluttering up the 'macros' directory.

18 August 2002 build 892

+ Tabify, Untabify, MakeLower, MakeUpper, Capitalise, ToggleCase, 
  AlignLeft, AlignRight, AlignCentre, and AlignJustify commands added.
+ Added DeleteWord, DeleteWordLeft, DeleteWordRight, DeleteLine, 
  DeleteLineLeft, DeleteLineRight added.
+ Multiple project support made more robust / stable.
+ Line-wrap mode speeded up considerably.
+ File Association dialog finished.
+ Cursor keys (left, right, up, down, PgUp, and PgDn) in line-wrap 
  mode fixed up properly.
+ Added code to more accurately determine whether a TEXTPOS is valid
  or not and a 'MakeValidPos' method to force a TEXTPOS to a valid 
  position.  Important for macros.
+ Improved CText::BuildString to accept a text position of (-1, -1)
  to mean the EOF.
+ RepeatLast command now works properly.
+ Macros improved
  + Operations can now be evaluated.
  + Macros can now be played / recorded from a macro.
  + Macros are now logged.
  + ReplaceAll, CursorGoto, and RunMacro built-ins added.
  + Methods with more than one parameter can now be compiled.
  + Unary operators (! and -) support added.
- Fixed occasional crash when using Ctrl-Tab.
- File History now properly written to the registry.
- Fixed bug where Edit menu entries would find their way into the 
  File menu entries in the Customise box 'Commands' tab.
- FTP dialog spurious crashes fixed, and changing the Transfer List
  columns no longer breaks the FTP function.
- Fixed problem where /*/ constructs were being interpreted as a 
  valid comment.
- Text documents now default to DOS, so that empty files are not 
  assumed to be binary.
- Bug fixed where the language setting was not initialised properly.
- Fixed bug where the caret sometimes displayed in the RHS gutter 
  (where the line-wrap/continuation bitmaps go).
- Fixed bug where the caret size was not updated after changing the
  font or viewing Print Preview (actually the same thing).
- Fixed bug where the EOF line was sometimes drawn multiple times.
- Fixed bug when the text was not drawn (actually not invalidated) 
  properly when scrolling to the right.
- Fixed bug where the caret position was not placed correctly when
  changing from maximised to normal position.
- Fixed bug where windows are not restored properly on startup.

9 June 2002 build 873

+ About box tidied up
+ Dynamic language menu added
+ Find-in-Files '\' now works in the find text for non-regex finds.
+ View | Toolbars fixed.
+ Security stuff added (nag screen, 'Buy now' caption bar)
+ Project name added to the title.
- FileMonitor removed because it was crap.  Went back to the old way.
+ Crash Manager added.
+ Project & Configuration drop-downs added.
+ Delete Word / Line commands added.
+ Splash screen improved.
+ File Associations improved (though still doesn't delete 
  associations).
+ The directory name now given to the output window to give better 
  error reporting.
+ COM activation improved so that column numbers are included in the
  open criteria.
+ FTP Password dialog improved to show hast / user name.
- FTP password is now stored encrypted.
+ Better logging added to FTP session.
+ Goto bookmark now centres the page (if necessary).
+ Edit Cut / Copy / Paste are now recorded correctly.
+ Macros are now read from all sub-directories.

30 April 2002 Build 822

+ Line-wrap bugs fixed.
- Performance hit removed where ultra-long lines took ages to be 
  displayed.  This could still be speeded up by caching only the 
  display strings for the view client area - later.
- Annoying flickering for 'Find' text highlighting removed.
+ Drag 'n' drop support re-introduced.
+ Print margins support started.
+ Cancel command added.
+ Command line is now passed to previous instance (if required).
+ 'History' (previously visited paths drop-down) dialog added.
+ File monitor paused in an attempt to speed up the loading time.
+ Insert Project and Add New Project functions added (still buggy 
  though).
+ Project toolbar with project & configuration drop-downs added.
+ Project Environment variables added.
+ Project Configurations added.
+ Project 'unload' function added.
+ Workspace registry support added back in.
+ More logging for FTP added.

2.0 started

16 February 2002 Build 796

+ Splash screen added.
+ CCmd introduced.
+ Macros introduced.
+ Line-wrap introduced.
+ Project file is now XML.
+ Skin support added.
+ File associations preference page added.
+ Open dialog is now multi-select.
+ 'Find' text highlighting.
+ File-watcher class written.
+ Started repeat last command
+ Started quote next character command.

29 Decmember 2000 Build 720

. Focus fixed between control bars and main screen.
. F4 cursor posititon problem fixed.
. Help window is now independent of the main view.
. MTI style support added.
. More flexible number support added to syntax colouring.
. Second and subsequent instances now de not reload the previous 
  project.
. Syntax files can now be loaded dynamically.
. Preferences - View Style, Tabbed Views, and Print pages added.
. Dropping a project onto PrEditor now closes the previous project.
. An FTP opened file can now be saved as a local file properly.
. Middle mouse button scroll support added.
. Pretty pring support added.
. Line number printing options added.

21 November 2000 Build 711

. Win95 trace support removed.
. Bug fixed where F4 didn't clear the selection.
. Find-in-Files 'whole-word' now REALLY works properly
. Fixed infinite loop in Find & Replace (where 'Replace All' something 
  like AAA with AAAA).
. Syntax files can now be loaded dynanmically.
. Second instance now doesn't reopen the last project.
. Ctrl-TAB now behaves like DevStudio
. Better support for 'Automatic' colour
. MT Logging support added.
. Automation support for VSPred.dll added.
. Middle Mouse button scroll support added.
. FTP finished up (Dialog 'Properties' button added, 'Password' dialog 
  added).
. Preferences 'Colours' page re-arranged and schemes support added.
. ProjectDoc tidied up.
. Syntax files 'Comment' now can be case sensitive.
. Support for matching regex (specially for HTML tags) and bug fix for 
  ordinary braces.
. Fixed bug where pasting text didn't update the max line length.  
  Important when pasting into an empty document.
. Fix to history - don't add non-existent files.
. Bookmarks now saved to history.
. Line numbers can now be drawn in bold, italics and underline.
. Mouse selection tidied up.
. Fixed bug when right-clicking on #include lines of FTP files.
. Tidied up Windows dialog.
. Added Alt-Nr to the Workspace and generally tidied up.
. Bug fix where ESC makes the output window disappear until the next 
  session.

10-Sep-00 build 692

. FTP Open and Save As support added.
. File properties improved.  Stretchy, byte, word, & line counts, 
  name can be cut and pasted, file format can now be changed.
. Find-in-files 'Whole word' now works properly.
. Keymap added.
. Focus problems sorted out for output and workspace windows.
. Dependence on CMDIPersistentFrame removed (BCG does it all).
. Licence screen spelling mistake fixed.
. Underline font support added.

Version 1.2

28-Jun-00 build 684

. Bookmark bitmap now drawn one pixel nearer the left edge.
. Splitter window now opens up at the same scroll position as the 
  first window.
. Macro support started for typing added.
. Drag-n-drop support.
. Double-click and extend selection support added.
. Infinite loop when the empty string is a match in regex find & 
  replace fixed.
. Workspace bar created, the project tree moved into it, and the 
  project doc disconnected from the project view.
. Cool menu logo now drawn.
. Pretty printing bug fixed.
. Bold & italics fonts support added.
. Files history support added (not yet very clean).
. Preferences move to a tree.
. Show Invisibles is now a check button.
. Recent files / projects move to sub-menus.
. Print preview now starts at the same page as the document
. Fixed bug where Find-in-files window occasionally loses its font.
. Horizontal mouse scroll speed is now dual speed.
. Tile vertically function added.

Version 1.1 Released 30-Apr-00

24-Apr-00 669
. Windows menu sorted out.  Project removed from Windows dialog, and 
  file name chopped off the path.
. Web site access fixed.
. Changed word-wrap method.
4-Apr-00 662
. Goto bookmark now lines up in the middle of the page.
. Tidy up of the GotoMate command.
. Sped up Indent / Unindent and Replace all.
. Made find tool scroll the screen horizontally to make the found text 
  visible.
. Added folder list functionality to Find-in-files + general tidy-up. 
. Prevent PrEditor being placed way off-screen
. Changed to using a proper cookie to get round the entites that span 
  lines
. Syntax files now looked for in the exe/syntax directory
. About box tidied up
. Crash fixed where a project tool is asigned a shortcut, and then 
  removed.
. Margins are now remembered better between sessions.
. Clicking word-wrap in Preferences enables 'Apply'
. Support added for the string continuation character.
. Support added for keyword attributes (for HTML)
. OpenAssocFile now depends on the .extension entry in the syntax
  descriptor
. Drag-tree now behaves better.
. Bug fixed in CXString::IsUpper and IsLower.

31-Dec-99 build 639

. Swapped from CodeJockey library to Stas Levin's BCG library - much 
  better customisation support.  Menus (and context menus) now look 
  much better than v1, shortcut keys support, docking toolbar and 
  window support.
. Fixed crash in selection method
. Added User Tools support
. Added Find-in-files function
. Version number now gets written to the registry (for future)
. Fixed the default background colour selection in Preferences 
. Project tree now expands the first item and shows it.  BCG Popup menu 
  support added.
. Fixed problem with sort routine that caused matching tags not to be 
  shown in the tag highlight colour.
- Fixed crash when Find & Replace is invoked on an empty doc.

16-Nov-99 build 586

+ Multi-thread support for Project Build commands.
- Fixed regexp syntax colouring bug.
+ WindowsDlg made flexi.
+ Attempted to fix the status text (fairly unsuccessfully).
+ Added context menu support to the tabbed MDI interface.

20-Oct-99 build 580

+ Improvements to thwart crackers.
- Bugs fixed in the Workspace manager.
+ Uppercase, Lowercase, Capitalise, and ToggleCase added.
- Undo in OVR mode bug fixed.
- CFindDlg sometimes selected the previous line's '\n' fixed.
+ 'Keep case' in Find & Replace added.
+ Find & Replace tidyup.  No more message boxes, 'Replace' button 
  enabled correctly, regex 'Replace with' text now supports '\' chars,
  can now find a unique word that is partially selected, and the found
  text is now positioned in the middle of the view.
- Fixed a crash in the highlight braces functionality.
+ Added a context menu to the tabbed MDI client.
- Fixed bug in project settings when creating a new project.
+ Project tree tidy-up.  Context menu items now all work, multi-item
  delete and drag-n-drop do the right thing, headers expand when files
  are added, filters on 'Add Files' fixed and can select a decent 
  number of files.  Auto-expand added.
+ Mouse scrolling improved - x scrolling supported.
+ Time taken for a build command is now displayed.

7-Oct-99 build 568

+ LOG macro support added.
+ WordWrap as you type added.
+ IndentBlock tab size taken from the document rather than the global 
  setting.
+ Open #include file support added (from context menu).
+ Properties support to project tree items added.
- Parsing preprocessor lines bugs fixed:
  . #define POSLONG ('LONG' used to be variable colour)
  . #define POS2    ('2' used to be innumber colour)
- File open file filters sorted.
+ GotoPrevError added.
+ HTML menu added (temporary) - but became permanent since it was so 
  useful (will be replaced by a more generic 'dynamic menu' 
  eventually).
- Undo size -> 1 bug fixed.
+ Colour picker well added.
+ Project tree multi-select, context menu, and drag 'n' drop support 
  added. Tree disconnected from the view.  Project tree expanded / 
  collapsed status restored.
- Find & Replace bug where the cr/lf of the previous line was 
  occasionally returned.
+ Errors in the syntax files now cause errors to be displayed.
+ Text files can now be saved in any format (UNIX, DOS,and Macintosh).
+ BrowseForFolder button added in Projects | Settings
+ Workspace save/load fixed - views are put back restored, maximised, 
  or minimised properly
+ Some Revision mark support added
+ Some HTMLHelp support added

8-Sep-99

+ GotoMatchingBrace added.
- Mysterious crash fixed, due to uninitialised m_nScreenCol.

29-Aug-99

+ Experimented with CJ Library + Tabbed GUI.
+ Project commands support (Compile, Build, etc).
+ R/O file support.
+ Goto dialog.
+ Separate print font support.
+ Syntax colouring bug fixes (Perl '$#' etc.).
+ Logging support added.
+ Fixed crash when loading project file that contains an empty file 
  name.
6-Jul-99
+ Read-only is switchable.
+ WAV sounds support.

4-Jul-99

+ Fixed perl '$#' syntax colouring problem.
+ Read-only documents cannot be edited.
+ Language can be changed from properties.

23-Jun-99

+ Tab size changeable on an individual file basis.
+ Tabify / Untabify added.
+ R/H mouse button context menu added.
+ Backspace at the end of a line of spaces erases to previous tab stop.
+ Return now sets the Screen Position.
+ Tagged language support added (like HTML).
+ Can load multiple syntax files (with include support).
+ LHS margin added.
+ Word-wrap added.

Released v 1.0 30-May-99

15-Feb-99

+ Regex support added.

5-Feb-99

+ Printing support

Around here I took a year-and-a-half break from PrEditor, although I continued to use it.

23-Sep-97

+ Cleaned up syntax colouring and keystrokes. 
+ Info button on About box activated.
. Window | More windows tidied up

25-Mar-97

+ Line no. support added.

24-Mar-97

+ Projects support added (first version).

18-Mar-97

+ Syntax colouring (first version).

15-Mar-97

+ Bookmarks added.

14-Mar-97

+ File Open dialog.

11-Mar-97

- Various bugs / cosmetic changes like variable size of the Ln/Col 
  status pane, progress bar etc.
+ Backwards search and tidied up Find & Replace.

10-Mar-97

+ Alt-nr selection added.

5-Mar-97

+ Selection margin added.

1-Mar-97

+ Reload externally modified files.

27-Feb-97

+ Find / Replace & AutoIndent added.

24-Feb-97

+ Workspace space/restore support added.  
- Bug fixes, etc.

14-Feb-97

+ Undo / redo stacks

12-Feb-97

+ Indent / Unindent

11-Feb-97

+ Double/Triple click word/line selection. 
+ Overwrite mode.

7-Feb-97

- Bug fixes, etc.

28-Jan-97

+ Clipboard functions.

27-Jan-97

+ Selecting text, with dual speed scrolling mouse.

24-Jan-97

+ Cursor Navigating, Mouse clicking, TABs expanded

13-Nov-96

+ Splitter window

12-Nov-96

+ Accept drag 'n' dropped .lnk files.

11-Nov-96

+ Font selection, file read (dos/unix)

5 November 1996

+ Started coding the basic editing and syntax viewing functions of 
  PrEditor. As soon as had the basics working I used PrEditor to write 
  PrEditor!

+ means an added or updated feature
- means a bug fix
. means notice (no change to functionality).