Essentially, TabMate is a way for TextMate to remember the coding style, and bundle used for specific source code files. This way, when you open a source code file with different editing options from your preferred (for example, from work), you don't have to manually adjust these settings - TabMate will do it for you.
Just put a modeline at the top of your source files with your language and indenting settings, and TabMate will make TextMate adhere to it every time you open that file!
Ever since the first day of UNIX, text editors such as vi and emacs would insert a line at the top of text files with options specific to that file. Options include things as what language the code was written in, the size of tabs, whether to use spaces instead of tabs, etc.
Many projects, such as Mozilla (example from Camino), use modelines to keep code, maintained by hundreds of different people, well-indented. Were it not for the modelines, people's personal editing preferences would make the source code very disorganized and hard to read.
An example modeline from the real world, explained:
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
mode
is the programming language used in this file.tab-width
is the length of each tab.indent-tabs-mode
is set to nil, it means soft tabs will be used.c-basic-offset
is used. It might be an old emacs-legacy flag.For feature requests, bug reports, patches, or anything else related to TabMate development, head over to tabmate's project page at bitbucket.