Flex-editing (much of it is already implemented)
Allows one to select and manipulate text by clicking it or dragging
over it. A
text selection can be very discontinuous. That is, it can consist of
any combination
of single characters, words or groups of words which can be freely
scattered all
over the document. As in a normal editor, selected text can be copied
or deleted.
It can also be sent to a list.
It operates in three granularity modes: A character at a time, a "word"
at a time, or
a line at a time.
It operates in three directionality modes: Normal (no directionality),
to the beginning
of the line, and to end of the line.
With some tools, Shift+dragging will perform a "local undo".
Some of the basic tools
are:
Select
Selects any text
Shift+dragging will de-select any selected text
Select Special
Selects only the characters specified by type or individually.
Character types include punctuation, digits and letters.
Shift+dragging will de-select any selected text
Make List
Creates a list by dragging over the text to be included. It fills the
list
as you go.
Single-Space
and Left-justify
Replace
Replaces normally, that is, specific text with specific text.
Replace Anything
Replaces a character or word, with the specified text.
Insert-Repeat
Repeatedly inserts specified text
Repeat List Item
Repeatedly inserts an item from a list
Insert Series
Generates and inserts a numerical or other type of series (once per
click or per line).
Insert from List
Retrieves each selected item from a list and inserts each item in
turn, into the text.
Change Case
(obvious enough)
Convert (not
implemented yet) Will convert between number bases
Single-Space
Single-spaces the current word with respect to the preceding
one.
Expand-Spaces
Expands spaces to a specified amount.
Insert Return
Inserts a carriage return, combining the removed text with the
text on the following one (holding Ctrl while dragging, pushes the
following
line downward to make room for the new one).
Delete Return
(not implemented yet) will be the opposite of Insert Return
To try out the flex mode features:
Note:
The effects of a tool are cumulative and can be in noncontiguous areas. That
is, it can be some text on the 20th line and some more on the 32nd line,
etc, with no limit to complexity.
It's "flex-mode" typing code is not ready yet, so don't be confused when you
notice you can't type in this mode.
1) Open a txt or rtf file to fill the richedit which is visible in "normal" mode.
You can also paste text into it, instead. For now, these are the only ways to
get text into the flex-mode window.
2) Go to "Tools/Flex Mode". The text will lose any fancy formatting during
this transition (the tool window is visible in all modes, so you can't use that
to tell you when you're in flex-mode).
3) Select a tool from the tool window. It defaults to "Select". You may choose
a different "Resolution" and "Direction" ("Sentence" resolution doesn't work
yet).
4) Drag the cursor in any combination of directions over the text (you can
also click it).
For some tools the affected text will turn red to indicate that it has been
selected or affected and so the editor won't keep reapplying the tool to it.
5) To commit to the changes, press "Enter" or the "Accept" button in the tool
window. If you were using a selection tool, all text selected at this time will be
deleted. No changes can be reversed after this.
6) "Shift-dragging" using a selecting tool de-selects any selected text. With
other tools it reverses previous actions performed on the text. This "local undo"
feature is presently limited or non-existent for most features at this stage.
7) Pressing "Esc" or "Tools/Normal Mode" will commit to all changes, go to
normal mode and transfer the text back to the richedit.
Additional information:
For now, copying to the clipboard in flex-mode deliberately places "marker" bytes into
the text for some advanced pasting abilities which aren't implemented yet.
The source code is in the "flex" folder of the CVS directory. Some features mentioned
here are not supported in this version yet.
Browse CVS
Website Home
Project Summary Page at SourceForge.net
This project is sponsored by TheirCorp
(formerly TheirWare Corporation)