Hi Richard,

I've found the 'repeat for each' structure, the first one below, to be incredibly faster than the second and third ones below since it doesn't have to count returns or spaces to get to lines and words. For example, in the second repeat loop I believe the second line 'put line cline of s into curline' is going to take a long time to count all those return characters in long scripts, so I believe replacing the 'repeat while...' structure with another 'repeat for each line' structure would speed things up substantially. In the third repeat loop there's a similar situation with the 'repeat with curword...' structure. Here a 'repeat for each word...' structure might speed things up substantially, also. Of course, in each of these replacements you'll have to add 1 to a variable for each repetition in the loop so you know where you are, but that's just math which isn't going to slow anything down.

Hope this helps,

Ray Horsley
Developer, LinkIt! Software


On Apr 25, 2006, at 7:00 PM, Richard Gaskin wrote:

Anyone have ideas on how to speed up MC's script colorizing?

Here's the handler from the card script of the Script Editor stack:


on colorizescript
  if tokencolors["if"] is empty then setupcolors
  local s
  put field "Editor Field" into s
  put s into field "Editor Field"
  go to card 2
  local curword
  put 1 into curword
  repeat for each word w in s
    if tokencolors[w] is not empty
then set the textColor of word curword of field "Editor Field" of card 1 to tokencolors[w]
    add 1 to curword
  end repeat
  local oldline, cline, curline, nwords
  put min(lineoffset("#", s), lineoffset("--", s)) into oldline
  put 0 into cline
  repeat while oldline is not 0
    add oldline to cline
    put line cline of s into curline
    put the number of words in curline into nwords
    repeat with curword = 1 to nwords
if char 1 of word curword of curline is "#" or char 1 to 2 of word curword of curline is "--" then set the textColor of word curword to nwords of line cline of field "Editor Field" of card 1 to "DarkOrchid4"
        exit repeat
      end if
    end repeat
put min(lineoffset("#", s, cline), lineoffset("--", s, cline)) into oldline
  end repeat
  go to card 1
  unlock screen
end colorizescript


On short scripts it's fine, but run it on lengthy ones like libURL and it takes some time.

Any suggestions welcome...

--
 Richard Gaskin
 Fourth World Media Corporation
 ___________________________________________________________
 [EMAIL PROTECTED]       http://www.FourthWorld.com
_______________________________________________
metacard mailing list
metacard@lists.runrev.com
http://lists.runrev.com/mailman/listinfo/metacard


_______________________________________________
metacard mailing list
metacard@lists.runrev.com
http://lists.runrev.com/mailman/listinfo/metacard

Reply via email to