El 07/02/2007, a las 21:45, Charilaos Skiadas escribió:
On Feb 7, 2007, at 2:47 PM, Juan wrote:
I have many many lines of code for to introduce in TM, but I am worried about the fact that many of them will be impossible since TM does not preserve states and always depends on external commands and not have an internal interpreter. This is a very deep limitation, you must agree with me.
No sorry, I don't. Partly because I don't understand exactly what you mean by built-in interpreter, and partly because I have found TM very extensible in many ways and there are very few things that find it limiting in. Using external commands has worked great for me because I can code in whatever scripting language I like, rather than be forced to use whatever language the author decided to have the built-in interpreter in. That's one of the reasons I gave up on emacs.
I have been working with an editor with built interpreter for more than ten years. I understand what you say about Emacs, Stallman decision was really argued over. I don't know about anyone that uses elisp, for any other thing than make emacs to work. I think you, like me, like better and modern languages. No doubt exist about which ones are the best, perhaps the order may change, but all of this have clear syntax and power regexps managing:
ruby, tcl, python, etc.
the one selected for being embedded in an editor is not important as far as the fact of having any one in it.
Its not true that having an interpreter embedded avoid the using of AppleScript, or any other scripting languages. That hasn't to do with that fact. You always can do "system(args)" with any scripting language calling any other with args.
Although I have been working deeply with Tcl and Perl, I recognize I fallen in love with Ruby as soon as I have try it.
I think however that there are a lot of things that can be done with TM as it is, and if there is something you think can't be done, then ask the list and perhaps we'll have some ideas about how to do it. If it really can't be done with things as is, and you have a good case for the need for this feature, then your feature request might make it into TM releases sooner than not.
Of course, I recognize TM has inside very clever design and more important, it is really MacOS friendly and it is very well integrated in the system exploiting everything in the system and using the cleverly the most important frameworks.
But ¡there are so many things that depends on having an EI, embedded interpreter, that the extensibility of TM is braked and will need a lot of extra efforts for reaching the half of the goals.
The examples I gave to you were only a few and can grow fast. There are many others. Things like Menu control (building them, etc), open/ close hooks (procs that must be called when anything open or closes), Access to the document: position, selecting parts of it, changing the insertion point position!!, are all of them impossible with the TM model except that in future versions TM hard-coded them and gives us direct access by new tricky interface gadgeds.
The most simple thing, like the building of a list of open windows inside your external scripting language is near impossible. You should resort to applescripting or so to ask TM for this, if possible.
TM needs an internal well organized dictionary of methods for accessing its state and an internal language for building in-memory structures. These both things doesn't have anything to do with the external scripting calling ability. Is my opinion.
-- Juan Falgueras