TextMate
Download
You can download TextMate from here.
Feedback
You can use the TextMate mailing list or #textmate IRC channel on freenode.net for questions, comments, and bug reports.
You can also contact MacroMates.
Before you submit a bug report please read the writing bug reports instructions.
Screenshot
Building
Setup
To build TextMate, you need the following:
- boost — portable C++ source libraries
- Cap’n Proto — serialization library
- multimarkdown — marked-up plain text compiler
- ninja — build system similar to
make
- ragel — state machine compiler
- sparsehash — a cache friendly
hash_map
All this can be installed using either Homebrew or MacPorts:
# Homebrew
brew install boost capnp google-sparsehash multimarkdown ninja ragel
# MacPorts
sudo port install boost capnproto multimarkdown ninja ragel sparsehash
After installing dependencies, make sure you have a full checkout (including submodules) and then run ./configure
followed by ninja
, for example:
git clone --recursive https://github.com/textmate/textmate.git
cd textmate
./configure && ninja TextMate/run
The ./configure
script simply checks that all dependencies can be found, and then calls bin/rave
to bootstrap a build.ninja
file with default config set to release
and default target set to TextMate
.
Building from within TextMate
You should install the Ninja bundle which can be installed via Preferences → Bundles.
After this you can press ⌘B to build from within TextMate. In case you haven't already you also need to set up the PATH
variable either in Preferences → Variables or ~/.tm_properties
so it can find ninja
and related tools; an example could be $PATH:/usr/local/bin
.
The default target (set in .tm_properties
) is TextMate/run
. This will relaunch TextMate but when called from within TextMate, a dialog will appear before the current instance is killed. As there is full session restore, it is safe to relaunch even with unsaved changes.
If the current file is a test file then the target to build is changed to build the library to which the test belongs (this is done by setting TM_NINJA_TARGET
in the .tm_properties
file found in the root of the source tree).
Similarly, if the current file belongs to an application target (other than TextMate.app
) then TM_NINJA_TARGET
is set to build and run this application.
Build Targets
For the TextMate.app
application there are two symbolic build targets:
ninja TextMate # Build and sign TextMate
ninja TextMate/run # Build, sign, and (re)launch TextMate
To clean everything run:
ninja -t clean
Or simply delete ~/build/TextMate
.
Legal
The source for TextMate is released under the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
TextMate is a trademark of Allan Odgaard.