External Editor . . . on and on
richmondmathewson at gmail.com
Wed Oct 23 15:44:40 CEST 2013
Of course we will also need the script of the Menu item that allows the
user to set an external script editor in his/her/trans's preferences.
On 22/10/13 22:58, Richard Gaskin wrote:
> 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
> 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
> use-livecode mailing list
> use-livecode at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your
> subscription preferences:
More information about the use-livecode