On Oct 25, 2005, at 20:29, Allan Odgaard wrote:
On 25/10/2005, at 17.50, Gerd Knops wrote:
Eventually I hope to hook into the Syntax
Coloring engine, so any
language TM knows would work.
Well, one of the reasons I haven't made a popup yet is, that the TM
syntax coloring engine isn't really sufficient for all languages.
I.e. there's no way it can capture obj-c multi-argument methods as
one entity (since they are not that in the source), and coming up
with rules to make it parse C++ functions is also all but simple
(if not impossible).
So while it has the advantage of not repeating everything for the
function popup/code browser, and supporting mixed documents (HTML
with embedded CSS, JS, Ruby, PHP, etc.), it's not really working
for the two languages I primarely use.
Makes sense. To bad the exuberant ctags don't support ObjC either.
Back then NeXTSTEP had a ctags version that knew ObjC, but the
sources were never public. I wonder if the compiler could be tickled
And great work making your ctags implementation work with TM! I'm
curious, do you get by alone by NSWindow notification and querying
representedFile? I'd think the tab-switching would require a little
more than that!?!
These details are so dirty that I'd prefer not to discuss them
openly! Basically I am doing something similar to 'poseAsClass:', but
on the method level. Did I mention it is dirty?
I can easily add (i.e. next build) that TM e.g. loads
from AppSupport/TextMate/Plugins — it seems for your “plugin” it
wouldn't need to expose any API, thus it's a safe way to slowly
extend TM to support plugins
That'd be great, that would at least avoid the InputManagers hack.
(my conservatism is primarily caused by the fear of
maintain a stupid legacy API for all eternity, that and lack of
time of course).
That I understand all to well! And the Commands actually take care of
many things already. I could see an argument for bundles for project
management, version control plugins, and may be (though that would
probably be quite involved and hard to generalize for multiple
languages) debugging. Almost everything else can be done with
commands. I am really itching to change a few small details of the
internal workings of TM (word characters on a per language base,
handling of double-click extend), but the code in question seems to
be mostly C++ which is a lot less hackable than ObjC...