At 10:38 PM -0700 6/20/2005, Todd Geist wrote:
Hello,

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.

This used to be in the docs, but I think it's been taken out:

on tabKey
  if the selectedText is empty then pass tabKey
  -- there's an insertion point, but no selection,
  -- so let tab key operate normally. Otherwise...
  put the selectedLines into savedSelectedLines -- save for later
  put word 2 of the selectedLines into firstLine
  if word 3 of the selectedLines is "to" then
    -- multiple lines are selected
    put word 4 of the selectedLines into lastLine
  else -- single line is selected
    put firstLine into lastLine
  end if
  if the shiftKey is down then -- shift left - remove a tab:
    repeat with thisLine = firstLine to lastLine
      if char 1 of line thisLine \
          of (the text of the selectedField) is tab
      then delete char 1 of line thisLine \
          of the selectedField -- remove leading tab
    end repeat
  else -- shift key not down, so shift right - add a tab:
    repeat with thisLine = firstLine to lastLine
      -- add a leading tab to each line in the selection
      put tab before line thisLine of the selectedField
    end repeat
  end if
  select savedSelectedLines -- (re)select all affected lines
end tabKey

Feature 2

A new Line created by pressing "return" needs to line up with the previous line

This should work:

on returnInField
  put return & leadingWhiteSpace(the value of the selectedLine) \
     into the selection
end returnInField

function leadingWhiteSpace theText
  local myWhiteSpace
  repeat for each char thisChar in theText
    if thisChar is in (tab & space)
    then put thisChar after myWhiteSpace
    else exit repeat
  end repeat
  return myWhiteSpace
end leadingWhiteSpace

--
jeanne a. e. devoto ~ [EMAIL PROTECTED]
http://www.jaedworks.com
_______________________________________________
use-revolution mailing list
use-revolution@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution

Reply via email to