textmate /textmate

TextMate is a graphical text editor for macOS 10.12 or later

★ 14,579⑂ 1,761
Objective-C++Created 2012-08-08macromates.com/
14,579
stars
+1+1+10
1,761
forks
–
watchers
–
prs
–
issues
–
releases
–
discussions

README

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

!textmate

 Building

 Setup

To build TextMate, you need the following:

  [boost][]            — portable C++ source libraries
  [Cap’n Proto][capnp] — 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][]:

sh
 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:

sh
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][NinjaBundle] 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:

sh
ninja TextMate       Build and sign TextMate
ninja TextMate/run   Build, sign, and (re)launch TextMate


To clean everything run:

sh
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.

[boost]: 

Snapshot: 2026-11-10T09:35:25Z · Data license Apache-2.0 · JSON