I think he is trying to create an auto-indent editor, kind of like the Rev IDE editor, only one that actually works.

I wrote my own auto-indent editor years ago. I know it can be done (although perhaps not in Rev). Too bad they gave up before they had finished the project.

Jon


[EMAIL PROTECTED] wrote:

sez [EMAIL PROTECTED]:
I have been trying to figure out how to create a little simple text editor. Basically I want to add two features to a regular scrolling field.

Feature 1

Pressing tab while the insertion point is on a line of text needs to INDENT the line
   pressing shift_tab needs to OUTDENT it.
Rev is perfectly capable of indenting text in a field, and even indenting the first line of a paragraph differently from the 2nd and later lines. The properties you wand are called "margins" (for the whole thing) and "firstMargin" (for the first line). The "margins" property lets you adjust the top, bottom, right, and left margins separately, in a 4-item list; if the margins property is only one number, all sides of the text field get that number for heir margin-value. Unfortunately, Rev text fields can only have 1 (one) value for margins/first/Margin, and that one value applies to *all* the paragraphs in the field -- so if you want different amounts of indentation for different paragraphs, you have to use more than one text field. But if you don't mind indenting *all* the text in a field simultaneously, something like this might work:

local DeltaTab = 8 # adjust this value up or down, as you please

on tabKey
 put the margins of me into Fred
 # if the margins *weren't* a 4-item list, let's make it so now
if the number of items in Fred = 1 then put "," & Fred & "," & Fred & "," & Fred after Fred if the shiftKey is up then put DeltaTab into DT else put (-1 * DeltaTab) into DT
 add DT to item 2 of Fred
 add DT to item 4 of Fred
 set the margins of me to Fred
end tabKey

That handler assumes you want to adjust the right and left margin values. If you only want to worry about the first line's indent-value, try this instead:

local DeltaTab = 8 # adjust this value up or down, as you please

on tabKey
 put the firstMargin of me into Fred
if the shiftKey is up then put DeltaTab into DT else put (-1 * DeltaTab) into DT
 add DT to item 2 of Fred
 add DT to item 4 of Fred
 set the firstMargin of me to Fred
end tabKey

Feature 2

A new Line created by pressing "return" needs to line up with the previous line
   Like this...
Again, Rev makes all the paragraphs in a single field indent the same amount. Therefore, this behavior is not just available, it's downright mandatory!
_______________________________________________
use-revolution mailing list
[email protected]
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution


_______________________________________________
use-revolution mailing list
[email protected]
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution

Reply via email to