In another thread Allan Odgaard wrote:
TextMate will not search binary files, granted it knows that the file type is binary. So right-click a file (using the extension you want to exclude) in the project drawer and select to treat it as binary.

That helps, but isn't perfect.  For one thing, it can't handle files without an extension, such as executables.  If I just open a directory as a project, it's likely to be a mixed bag of source, object, and executable files.  It's easy enough to tell TextMate to skip the object (*.o) files, but how do I tell it that the executable named "xyzzy" is binary?

There's another quirk related to filename extensions that drives me nuts.  For various reasons, I have a lot of files with the extension "*.txt" which actually contain different types of data. We have, for instance, configuration files, SNMP MIB files, and plain ol' text files sharing that extension. I'd like different syntax highlighting rules to be used for each.  So I open "foo.txt" and change the language to "MIB".  Then I open "bar.txt" and change to "plain text", and so on.  It seems that every time I open a file with the *.txt extension I have to fiddle with the language.

(Yeah, if it were up to me I'd give all these files different extensions. Unfortunately the naming conventions were established long before I was hired here!)

Since the majority of *.txt files I edit actually are plain text, I think it'd be great if I could tell TextMate explicitly, "Treat *.txt as plain text unless I tell you specifically otherwise" instead of having it automatically change the definition of the whole extension whenever I switch.  I'd still end up changing types, but at least it'd cut down on how often I'd need to. Bonus points for remembering which full filenames have been manually mapped to something else.

What would be even better would be for TextMate to examine the contents of the file as well as the filename to determine what language it is.  If the extension is ambiguous, check the first few bytes for a shell shebang line, or an emacs-style modeline, or some other clue as to the type.  And I would absolutely swoon if the language definition itself contained a way to specify what to look for, letting TextMate try each language in turn until it found a match.

--
Steve King
Sr. Software Engineer
Arbor Networks
+1 734 821 1461
www.arbornetworks.com