I'm using TextMate as my Xcode external editor. This works pretty well, but I have a couple of problems:
(1) TextMate doesn't seem to support the external editor interface. Specifically, what seems to be missing is the ability to go directly to a specified line when opening a file. This is described here:
http://www.codingmonkeys.de/techpubs/externaleditor/ pbxexternaleditor.html
Remarks Metrowerks state in their documentation that the IDE (here Project Builder) uses the optional keyAEPosition parameter to tell the editor the selection range. If lineNum is zero or greater, scroll the text to the specified line. If lineNum is less than zero, use the values in startRange and endRange to select the specified characters. Scroll the text to display the selection. If lineNum, startRange and endRange are all negative, there is no selection range specified.
Basically, intercept the odoc AppleEvent and read the optional parameter for line number or selection information.
(2) When I open a TextMate document that I already have open, TextMate creates a new window for it and leaves the old window open too. This can be very useful under special circumstances, however -- more frequently -- it just rapidly and pointlessly clutters up my desktop. Creating a new window is useful, but should be an optional behavior. Usually, what I'm trying to do when I open a document is navigate to an existing window, relying on the standard Mac UI behavior. I will frequently double-click a file in the Xcode project window to get back to TextMate, most often a file I already have open.
Chris