[TxMt] Re: Changing cursor position from command
singletoned at gmail.com
Wed Feb 14 13:11:57 UTC 2007
I've loved Textmate for a while now, but reading this email I grokked
something new about it and love it twice as much now.
This really highlights the benefit of having a BDFL. Someone who can
see the very, very wide picture and force you to do something you
might not want to in order that the whole community can benefit.
An API would let you solve small problems quickly and would benefit
individuals, and sometimes small groups, in the short term. It's
often irritating not to just be able to solve them immediately in a
Allan's system is working towards solving the general problem of
writing code, forcing us to think more about what is needed for all
languages in general, and creating new abstractions.
I actually think providing an API would be damaging to the Textmate
community in the long term. If something more is needed then we need
to improve the abstractions (as Allan is doing and is apparently
On 14/02/07, Allan Odgaard <throw-away-1 at macromates.com> wrote:
> On 14. Feb 2007, at 01:52, Juan wrote:
> > The point it is impossible to build a recursive scope in HTML. In
> > HTML, for example, if your are inside a nested tag and you press ^-
> > Opt-B one time, to times, three times, etc, you will get _all_ your
> > source selected. Never at the third (etc) level out in the nesting.
> That has to do with how the grammar has been made, i.e. it does not
> mark up a tag pair as its own element, and thus cannot be selected
> via ⌃⌥B -- something we do consider improving (in the HTML
> grammar). At least it will be updated for the 2.0 grammar features.
> > I like a lot TM, I can assure you, for many reasons. But I don't
> > understand why the main problems are so tabued.
> They are not -- but you seem to have just the one goal of repeating
> the need for an API, but without being concrete in what you need from
> The need for an API has already been acknowledged, but there are a
> lot of considerations before opening up the innards of TM. Embedding
> a Ruby interpreter and implementing a carbon copy of Alpha's API (as
> what seems to be your suggestion) is certainly not how I want to
> tackle it.
> You also overlook the power of declarative abstractions, which is one
> of the fundamental advantages in TM. Solving problems with code is
> often counterproductive to finding new and better abstractions, and
> the abstractions, when done right, buys you much more long-term.
> Example: TextMate uses a declarative system for language grammars,
> some people have pointed out limitations in this system which would
> not exist if each bundle author could just write his own parser. But
> if you look at how many languages TM support, and how good it
> actually does support them, you should find that TM generally does a
> *much* better job than competing editors with binary parsers -- not
> only that, but because everything is declarative, one grammar can
> easily include another, and 2.0 will be able to use existing grammars
> for completely new features, like the scope injection mentioned on
> this list. This would be *completely* impossible, had each bundle
> author written his language parser as code.
> So there is no taboo -- when people are not jumping on the bandwagon
> it is likely because they do not think that it is as serious a
> problem as you make it out to be. Adding an API gives us a little
> more power, adding new abstractions (like attributes and dynamic
> scopes) will give us a lot! Did HTML gain the most from CSS or
> the CSS abstraction IMO added immensely more value to crafting web
> Another thing I should mention: The way you open up a Mac application
> for scripting is via the Open Scripting Architecture, yes,
> AppleScript is slow and just plain sucks. But wait, isn't there a
> lot of rumors about RubyOSA, PyObjC, etc. being included in Leopard?
> Maybe we should hold off embedding that Ruby interpreter, and see if
> using the platform-recommended way will not give us more long-term
> advantages ;)
> DISCLAIMER: Don't read too much into the above, I am still evaluating.
> For new threads USE THIS: textmate at lists.macromates.com
> (threading gets destroyed and the universe will collapse if you don't)
More information about the textmate