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.