External Editor . . . on and on
Richard Gaskin
ambassador at fourthworld.com
Tue Oct 22 15:58:02 EDT 2013
Looking at the most recent build of the MC IDE (v4.1), in the stack
"Script Editor" there's an item named "Run External Editor..." in the
Tools menu.
That menu button's script includes:
on menuPick which
...
case "Run External Editor..."
if the selectedLine is empty
then runexternal 0
else runexternal word 2 of the selectedLine
break
So looking in the card script I find:
on runexternal whichline
local ename, fname, dummy
put mcGetPref("external editor") into ename
put tempname() into fname
open file fname for write
write field "Editor Field" & cr to file fname
close file fname
put "See External Editor..." into field "Editor Field"
set the cursor to watch
if whichline is empty then put 1 into whichline
put shell(ename && "+" & whichline && fname) into dummy
open file fname for read
read from file fname until eof
if the last char of it is cr then delete last char of it
put it into field "Editor Field"
close file fname
delete file fname
select after line whichline of field "Editor Field"
put setscript(true) into fname
end runexternal
If I were implementing this today I'd do it differently:
1. Write the script to tmp
2. Launch editor with script as document
3. Poll for changes
4. set the script of the object to the contents of the changed file
There are probably many other ways to do it, but back when I was using
MC I just made my own editor, and now with LC I find it's not bad so I
just use it.
--
Richard Gaskin
Fourth World
LiveCode training and consulting: http://www.fourthworld.com
Webzine for LiveCode developers: http://www.LiveCodeJournal.com
Follow me on Twitter: http://twitter.com/FourthWorldSys
More information about the use-livecode
mailing list