TextMate is a graphical text editor for macOS 10.12 or later
You can download TextMate from here.
You can also contact MacroMates.
Before you submit a bug report please read the writing bug reports instructions.
To bootstrap the build you need to run
— location of built files. Defaults to
— for Apple’s
— location of sparsehash includes. By default it will search various locations including MacPorts and Homebrew.
In the simplest case (assuming Homebrew is installed) you would run:
brew install ragel boost multimarkdown hg ninja capnp google-sparsehash libressl git clone --recursive https://github.com/textmate/textmate.git cd textmate ./configure && ninja
If you're using MacPorts then instead run this line to install dependencies:
sudo port install ninja ragel boost multimarkdown mercurial sparsehash libressl
fails with a build error then likely you need to agree (system-wide) to Apple’s Xcode license:
sudo xcodebuild -license
Building TextMate has the following dependencies:
(mercurial) is only required for the SCM library’s tests so you can skip this dependency if you don’t mind a failing test.
If you want to avoid the libressl linker warnings about being built for different deployment target then run
brew edit libressl
and make the following change:
- system "./configure", \*args + system "env", "LDFLAGS=-mmacosx-version-min=10.8", "CFLAGS=-mmacosx-version-min=10.8", "./configure", \*args
Afterward you must rebuild using:
brew reinstall --build-from-source libressl
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
variable either in Preferences → Variables or
so it can find
and related tools; an example could be
The default target is
. 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
file found in the root of the source tree).
Similarly, if the current file belongs to an application target (other than
is set to build and run this application.
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
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.