PrEditor and the future (the To-Do list)

This is a rough guide as to what is planned for PrEditor in the future. If you would like to make suggestions for new features, then feel free to email us.

Testing

Incremental searching
Add a incremental searching function. This could be implemented by using the search combo box. Incremental searching attempts to find a match after each character is pressed.

Export/Import configuration function.
Although pretty easy to use, configuration can be a real pain to say, set up on another computer. We plan to provide an option to put all the configuration items into a single file (or directory) so that it is easy to copy to another computer.

Under development

Embedded-language support
With some languages files can have more than one language syntax contained in it. For example HTML can have JavaScript embedded in it. PrEditor should be taught how to recognise when the language syntax changes and colour appropriately.

Visible cursor line
Yet another idea to make it easier to spot the cursor - highlight the cursor line in some way. Suggestions are
  • a dotted line around it.
  • different background colour (probably the easiest).


Project / File templates
Introduce a template scheme for files and projects. Templates for files would be kept in the template directory under the PrEditor install directory.

Near future

Column mode selection
Column mode selection should be switched on with a toggle switch, or temporarily by holding the Alt key down whilst selecting with the mouse. Not very often used, but extremely useful occasionally.

Fetch web page (HTTP Get)
Similar to FTP GET however, would be called Fetch Web Page.

Send email function (use MAPI)
Use MAPI to send the current document as email.

Auto-completion
Static and dynamic auto-completion. Static refers to completion of keywords (defined in the .syntax file for the language), and dynamic, which completes 'tags' (see the tags section above).

RepeatNumber command.
Provide a simple dialog entry for a repeat-count. The next command would be repeated this number of times.

MoveBack - returns to last position
Have PrEditor remember the last N cursor positions and provide commands to move back (and forward). Similar to undo / redo but for cursor commands.

Enable # vi:ts=8 commands (see vi - :help vi for details)
Provide a method to override the document defaults by using 'in-channel' commands for this. VI does this with vi:ts=8 etc. commands. Copying this would make PrEditor compatible with VI/VIM.

Eat first click option.
Provide an option to 'eat' the first click when activating PrEditor.

Ruler
A ruler is a useful visual aid and could be enhanced to provide formatting columns etc.

Tooltips
Tooltips to provide additional information on the text under the mouse. For example, display ASCII number for unprintable characters, prototype information (gleaned from tags) for functions.

256 colour toolbar buttons.
BCG provide 256 bit graphics for most toolbar functionality - upgrade to using this.

TOTD
Tip-of-the-day. OK, I know that most people switch this off by default (and I don't blaim anyone for doing so), but, this can be a source of many tips that the user may not have thought about. Provide a link from the TOTD dialog straight into the relevant help page.

Not so near future

Keyword help support
Provide a method of looking up a keyword (under the cursor) in a third party supplied external help system. The most obvious help system would be HTMLHelp provided by Windows™.

SCC integration (w/ support for CSV, RCS, etc).
There are two basic methods to implement this - use the SCC DLL method (which will only allow support for those SCC systems that support the SCC DLL), or use the command line method (which will support more, but not in a consistent manner).
This will provide check-in, check-out capability right from PrEditor.

Beautify
Provide a code beautifier. There are some useful beautifiers already available - AStyle for one.

Hex view
Allow a file to be viewed in hex, similar to the following...
 03d0   31 2e 34 31 2c 20 2d 2c 20 39 2f 32 31 2f 30 33   1.41, -, 9/21/03
 03e0   2c 20 31 32 3a 32 34 3a 35 35 2c 20 57 33 53 56   , 12:24:55, W3SV
 03f0   43 2c 20 50 55 52 50 4c 45 5f 48 41 5a 45 2c 20   C, PURPLE_HAZE,
 0400   31 34 35 2e 31 2e 31 2e 34 31 2c 20 36 34 30 2c   145.1.1.41, 640,
 0410   20 35 33 38 2c 20 36 30 30 39 2c 20 32 30 30 2c    538, 6009, 200,
 0420   20 30 2c 20 47 45 54 2c 20 2f 49 54 72 61 6b 2f    0, GET, /ITrak/
 0430   49 73 73 75 65 2e 70 68 70 2c 20 6f 70 3d 65 64   Issue.php, op=ed
 0440   69 74 26 69 64 3d 31 33 26 50 48 50 53 45 53 53   it&id=13&PHPSESS
 0450   49 44 3d 63 37 34 32 35 62 39 36 33 34 34 39 33   ID=c7425b9634493
 0460   31 34 31 36 33 65 63 61 66 63 36 65 35 66 39 34   14163ecafc6e5f94
 0470   65 66 62 2c 20  d  a 31 34 35 2e 31 2e 31 2e 34   efb, ..145.1.1.4
 0480   31 2c 20 2d 2c 20 39 2f 32 31 2f 30 33 2c 20 31   1, -, 9/21/03, 1
 0490   32 3a 32 36 3a 30 34 2c 20 57 33 53 56 43 2c 20   2:26:04, W3SVC,


Web view
Provide a view (using the MFC CHtmlView) to show HTML pages as they appear in IE.

Display page breaks (using default printer data).
We already know where the page breaks will be for the default printer, so provide an option to

Revision marks
Whenever a line is changed, the margin would show a verticle red line for each line that had been modified.

Hyperlink support
Underline hyperlinks and jump to them from PrEditor text. Hyperlinks are identifiable as starting with http://, file://, etc.

Docco help (function prototype hints, etc.)
Use the tags database for the project to show function protype hints, function parameters, member variables/methods, etc.

Far future

Folding
The ability to 'fold' text by various means - the most obvious would be to fold methods, functions, and classes into one line. Other methods could be to manually fold, or to use indent levels.

Hex editing
Once hex display is there, allow users to edit the text in hex mode.

Huge file support (up to 2GB)
Files above, say, 1Mb should be considered as 'big', and dealt with in a way that is optimised for manipulating big files. For example, read only those bits that are being viewed on the screen into memory, disable scroll bars and line numbers (or update the count in the background) allowing the user to edit files straight away, rather than having to wait until the file loads.

Compare
Compare two files, and highlight the differences. Highlight differences, not only on separate lines, but within a line.

Merge
Once compare is done, merging two files would be the next move.

Disclaimer: We have deliberately not made any promises for delivery dates on the items describe herein, since deadlines mean that things get rushed to get finished, and we would rather get it right rather than releasing buggy product. We also do not make any promises to include any or all of the features describe. This is meant simply as a guide to the current plans for PrEditor.