[TxMt] TmCodeBrowser2 plugin!

Gerd Knops gerti at bitart.com
Wed Oct 26 04:19:23 UTC 2005


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  
into cooperation...

>
> 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 extensions  
> 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 having to  
> 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...

Gerd




More information about the textmate mailing list