Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/textmate/textmate
TextMate is a graphical text editor for macOS 10.12 or later
https://github.com/textmate/textmate
c-plus-plus cocoa macos objective-c-plus-plus texteditor textmate
Last synced: 7 days ago
JSON representation
TextMate is a graphical text editor for macOS 10.12 or later
- Host: GitHub
- URL: https://github.com/textmate/textmate
- Owner: textmate
- License: gpl-3.0
- Created: 2012-08-08T16:25:52.000Z (over 12 years ago)
- Default Branch: master
- Last Pushed: 2024-05-18T11:00:21.000Z (9 months ago)
- Last Synced: 2025-02-04T04:48:46.981Z (7 days ago)
- Topics: c-plus-plus, cocoa, macos, objective-c-plus-plus, texteditor, textmate
- Language: Objective-C++
- Homepage: https://macromates.com/
- Size: 19.4 MB
- Stars: 14,254
- Watchers: 949
- Forks: 1,728
- Open Issues: 19
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: COPYING
Awesome Lists containing this project
- project-awesome - textmate/textmate - TextMate is a graphical text editor for macOS 10.12 or later (Objective-C++)
- open-source-mac-os-apps - TextMate - TextMate is a graphical text editor for macOS. ![objective_c_icon] (Applications / Editors)
- awesome-puppet - Textmate - FOSS text editor for MacOS X (Integrated Development Enviroments)
- open-source-mac-os-apps - TextMate - TextMate is a graphical text editor for macOS. ![objective_c_icon] (Applications / Editors)
- StarryDivineSky - textmate/textmate
- awesome - textmate - TextMate is a graphical text editor for macOS 10.12 or later (cocoa)
README
# TextMate
## Download
You can [download TextMate from here](https://macromates.com/download).
## Feedback
You can use [the TextMate mailing list](https://lists.macromates.com/listinfo/textmate) or [#textmate][] IRC channel on [freenode.net][] for questions, comments, and bug reports.
You can also [contact MacroMates](https://macromates.com/support).
Before you submit a bug report please read the [writing bug reports](https://github.com/textmate/textmate/wiki/writing-bug-reports) instructions.
## Screenshot
![textmate](https://raw.github.com/textmate/textmate/gh-pages/images/screenshot.png)
# 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]: http://www.boost.org/
[ninja]: https://ninja-build.org/
[multimarkdown]: http://fletcherpenney.net/multimarkdown/
[ragel]: http://www.complang.org/ragel/
[capnp]: https://github.com/capnproto/capnproto.git
[MacPorts]: http://www.macports.org/
[Homebrew]: http://brew.sh/
[NinjaBundle]: https://github.com/textmate/ninja.tmbundle
[sparsehash]: https://code.google.com/p/sparsehash/
[#textmate]: irc://irc.freenode.net/#textmate
[freenode.net]: http://freenode.net/