Skip to content

Releases: sdenike/textmate

TextMate 3.0.0-revived.28

Choose a tag to compare

@github-actions github-actions released this 09 Oct 14:32
52b58c9

2026-10-09 (v3.0.0-revived.28)

Bundle commands run on the system Ruby again, and the editor's bars and overlays
fit macOS 27.

Fixed

  • Many bundle commands could not run at all. They were written for Ruby 1.8 and
    failed on the Ruby that ships with macOS: missing libraries (jcode,
    parsedate, iconv), a missing locale that made Word Count count bytes
    instead of characters, and the old ruby18 interpreter name. These are now
    covered by compatibility shims in Bundle Support, so the affected bundles
    work without being rewritten.

  • Apache, C and Objective-C each contained a command with a Ruby 1.8 when X:
    clause, which is a syntax error today, so the whole command failed to load.
    They are fixed in forks, and new installs pick them up. On an existing
    install, open Settings → Bundles and use Revert to Default on each.

Changed

  • The file browser's header and action bars, the editor's status bar and the
    HTML output status bar now have a flat top edge, so they meet a neighbouring
    sidebar or pane without a gap at the corner. The bottom corners stay rounded.

  • The zoom percentage that appears when you change the text size is now a
    glass capsule, drawn in the system label colour, in place of the grey
    rounded box with a shadowed white number.

Internal

  • Build and tested against the macOS 27 SDK. Open-time performance is unchanged
    from macOS 26 (a 1 MB source file parses in about 1.1 s in the headless
    benchmark).
  • Added bin/check_bundle_commands, a static checker for Ruby 1.8-era breakage
    in installed bundles, and bin/bench/measure-open.sh.
  • Added a headless parse benchmark and a check that the scope-matching fast
    path is doing its job.
  • The glass snapshot tests were written for a 1x display and a macOS 26
    limitation that no longer exists; they now measure in points.

What's Changed

  • Bundles: Ruby 2.6 compatibility by shims, not forks by @sdenike in #35
  • bench: write the measure-open.sh that CLAUDE.md has been documenting by @sdenike in #36
  • bundles: a static checker for Ruby-1.8-era command breakage by @sdenike in #37
  • bundles: fix the two syntax errors in Bundle Support by @sdenike in #38
  • bundles: fork Apache, C and Objective-C to fix colon-case syntax errors by @sdenike in #39
  • perf: a headless parse benchmark, and a negative result worth keeping by @sdenike in #40
  • perf: make the parse benchmark honest, and prove the fast-reject works by @sdenike in #41
  • docs: a Gatekeeper block that looks like an editor bug and is not by @sdenike in #42
  • Release v3.0.0-revived.28: flat-top glass bars, glass zoom HUD, macOS 27 build by @sdenike in #43

Full Changelog: v3.0.0-revived.27...v3.0.0-revived.28

TextMate 3.0.0-revived.27

Choose a tag to compare

@github-actions github-actions released this 27 Aug 19:29
7cff7ac

2026-08-27 (v3.0.0-revived.27)

The mate command works again on Macs that once ran the original TextMate, and
Settings, About and the update window are rebuilt.

Fixed

  • The mate command could not be updated, and on a Mac that had previously run
    the original TextMate it did not work at all — mate somefile answered
    "Can't find TextMate.app" and nothing ever fixed it. The copy already
    installed in /usr/local/bin reported the same version number as the one
    shipped here, so TextMate never offered to replace it, and an older copy goes
    looking for an application this fork does not install.

    The shipped command now carries this fork's own version number, and TextMate
    asks the installed command what version it is rather than trusting what it
    last remembered. If you are affected right now, Settings → Terminal →
    Uninstall followed by Install fixes it immediately.

  • Quick Look previews could stop working after an update. The preview extension
    carried a version number written by hand, which stopped matching the
    application's on the first release after it was written. macOS refuses to
    load an extension whose version disagrees with the application containing it,
    and it does so without saying anything. Both now come from the same place.

  • Release notes never appeared after an update. TextMate was asked to show
    them, but nothing was listening, and the check meant to decide whether
    anything had changed was looking in the wrong folder and always concluded
    there was nothing to show.

Changed

  • Settings is rebuilt. All six panes — Software Update, Projects, Variables,
    Files, Terminal and Bundles — now use the current macOS interface instead of
    layouts dating from TextMate 2. The window, its toolbar, its keyboard
    shortcuts and every setting they read and write are unchanged.

    One deliberate difference: in Settings → Bundles, the link and action buttons
    on each row are now always visible, where previously they appeared only when
    the pointer was over the row.

  • The About window no longer draws itself with an embedded web browser, and the
    software-update window is rebuilt to match the rest of the application.

  • About → Changes now lists this fork's own releases rather than the whole of
    TextMate's release history, with a link to the complete file for anything
    older.

What's Changed

  • fix(update): say which copy is unsigned, not which download by @sdenike in #20
  • Settings: the Software Update pane in SwiftUI by @sdenike in #21
  • Settings: the Projects pane in SwiftUI by @sdenike in #22
  • Settings: the Variables pane in SwiftUI by @sdenike in #23
  • scm_test: bound the wait that has hung CI twice by @sdenike in #25
  • Settings: the Files pane in SwiftUI, and the pattern written down by @sdenike in #24
  • docs: record that the four panes are held unreleased on purpose by @sdenike in #26
  • Settings: the Terminal pane in SwiftUI, and the last xib deleted by @sdenike in #27
  • Settings: the Bundles pane in SwiftUI — all six panes now ported by @sdenike in #28
  • Versions that must track the app: mate and the QuickLook extension by @sdenike in #29
  • The software-update sheet in SwiftUI by @sdenike in #30
  • About in SwiftUI: no web view, no Markdown renderer by @sdenike in #31
  • docs: Phase 6 is complete by @sdenike in #32
  • About: show this fork's releases, not upstream's 171 by @sdenike in #33
  • release: v3.0.0-revived.27 by @sdenike in #34

Full Changelog: v3.0.0-revived.26...v3.0.0-revived.27

TextMate 3.0.0-revived.26

Choose a tag to compare

@github-actions github-actions released this 19 Aug 12:48
b255db5

2026-08-19 (v3.0.0-revived.26)

A Setup Assistant walks you through first launch.

Added

  • A Setup Assistant now walks you through initial setup the first time you
    launch TextMate: choose a light, dark or automatic appearance with a live
    theme preview, then pick which bundled language and tool bundles to
    install. It replaces the old "Install Default Bundles" prompt, runs once,
    and stays available afterwards from Help → Setup Assistant….

    Appearance and theme could previously be changed only from the View menu,
    which made an untouched default hard to tell apart from a setting that had
    been lost.

Fixed

  • "Revert to Default" in Settings → Bundles was greyed out for every bundle
    that ships with TextMate, so an edited copy of a standard bundle could not
    be restored. TextMate was forgetting which bundles it ships each time it
    reloaded its bundle list, and treating all of them as bundles you had
    added yourself.

What's Changed

  • Phase 6: a Setup Assistant, and the first SwiftUI in the tree by @sdenike in #19

Full Changelog: v3.0.0-revived.25...v3.0.0-revived.26

TextMate 3.0.0-revived.25

Choose a tag to compare

@github-actions github-actions released this 18 Aug 20:27
a8bc639

2026-08-17 (v3.0.0-revived.25)

Quick Look previews work again.

Fixed

  • Several parts of the application were missing the files they needed to draw
    themselves, and so did nothing at all: the Terminal pane in Settings, the whole
    Bundle Editor, the encoding customisation window, and the tab-size picker.
    Their layout files had never been built into the application. Also restored:
    the file-type icons, the encodings list, Subversion status parsing, and the
    HTML output window's supporting files.

  • Pressing Space on a source file in Finder shows a TextMate preview again. The
    old preview plug-in used an interface Apple retired in macOS 12, and macOS had
    stopped loading it altogether — so previews had quietly not been working at
    all. It is replaced by a modern Quick Look extension.

What's Changed

  • Quick Look previews, and a Phase 2 resource regression that broke the Bundle Editor by @sdenike in #18

Full Changelog: v3.0.0-revived.24...v3.0.0-revived.25

TextMate 3.0.0-revived.24

Choose a tag to compare

@github-actions github-actions released this 17 Aug 12:54
643ad29

2026-08-16 (v3.0.0-revived.24)

Opening a file is substantially faster, and the app is smaller.

Changed

  • Opening a large source file is much faster. A 1 MB file that took about 15.5
    seconds to reopen now takes about 5.8 seconds, and a first open is roughly
    2.3× faster.

    Two things caused the delay. The cache that remembers which editor settings
    apply to a stretch of code threw itself away once it held a thousand entries —
    a 1 MB file has far more than that, so the cache filled, emptied and refilled
    without ever being used. And every lookup that missed the cache compared the
    code's context against every rule in every installed bundle, in full, even
    when the rule belonged to a different language entirely. Those comparisons now
    stop early when the language cannot match.

  • The About window no longer carries a copy of the project's entire commit
    history — 1.5 MB of it, growing with every commit, and fetching a picture of
    every contributor from the network each time it was opened. It links to the
    contributor list and the commit log on GitHub instead. Building the app no
    longer contacts GitHub either.

  • The application is about 1.9 MB smaller than the previous community release,
    and the helper programs bundled with it are now built for Apple Silicon only,
    where three of them still carried unused Intel code.

  • Windows can be consolidated by dragging one over another window's tab bar and
    holding it there for a moment. The target's tab bar highlights while it waits,
    and releasing before then does nothing, so an ordinary window move cannot merge
    anything by accident.

Fixed

  • Dragging a tab sideways to rearrange it no longer risks pulling it out into a
    window of its own. A tab is only torn off once it is dragged clearly away from
    the tab bar — travelling along the bar, however far, never detaches it.
    Reported by @schriftgestalt.

What's Changed

  • Phase 7: performance — 2.3–2.7× faster file opening, 1.9 MB smaller by @sdenike in #17

Full Changelog: v3.0.0-revived.23...v3.0.0-revived.24

TextMate 3.0.0-revived.23

Choose a tag to compare

@github-actions github-actions released this 16 Aug 01:37
586bff4

2026-08-16 (v3.0.0-revived.23)

Every material surface in the application now uses the macOS 26 glass material.

Changed

  • The remaining translucent surfaces now use the macOS 26 glass material: the
    Go to File and paste-history choosers' footer bars, the Bundles preferences
    footer, tooltips, and the choice menu shown when completing a word. Together
    with the earlier releases, every material surface in the application is now
    drawn the same way.

What's Changed

  • Phase 6 complete: the last six surfaces on glass by @sdenike in #16

Full Changelog: v3.0.0-revived.22...v3.0.0-revived.23

TextMate 3.0.0-revived.22

Choose a tag to compare

@github-actions github-actions released this 16 Aug 00:37
f4edf6f

2026-08-15 (v3.0.0-revived.22)

Tabs move into the title bar, and can be dragged out into their own window.

Changed

  • Tabs now sit in the window's title bar, beside the close/minimise/zoom buttons,
    rather than in a strip of their own below it. That gives back a full row of
    window chrome to the editor.

  • Dragging a tab out of the window now opens it in a window of its own. The
    menu's Move Document to New Window, and double-clicking a tab, already did
    this; the drag now does too.

  • The About window now opens centred on the frontmost editor window, or centred
    on screen when no editor window is open, instead of reappearing wherever it was
    last left.

Fixed

  • The window could not be dragged by the empty space in the tab bar. With tabs
    moved into the title bar there was nowhere else left to grab, so windows could
    not be moved at all. Dragging that space now moves the window; double-clicking
    it still opens a new tab, as before.

What's Changed

  • Tabs in the title bar, draggable windows, and tab tear-off by @sdenike in #15

Full Changelog: v3.0.0-revived.21...v3.0.0-revived.22

TextMate 3.0.0-revived.21

Choose a tag to compare

@github-actions github-actions released this 15 Aug 18:37
570c8be

2026-08-15 (v3.0.0-revived.21)

Missing artwork is back, and the window chrome moves to the macOS 26 material.

Fixed

  • Missing artwork throughout the application. The code-folding arrows in the
    gutter, gutter bookmarks, the diff/error/warning/note marks beside a line, the
    Preferences window's toolbar icons, and the file browser's search, favorites
    and SCM buttons were all drawing nothing.

    Forty image files had never been copied into the application since it moved to
    the Xcode build. An earlier release fixed forty other missing images, but its
    fix looked only in folders named gfx and only for PNG files — and the entire
    gutter icon set is PDF, kept in a different folder. A missing image fails
    silently, drawing an empty control rather than an error, which is why it went
    unnoticed through two releases.

Changed

  • The status bar, the file browser's header and actions bar, and the HTML output
    status bar now use the macOS 26 glass material.

  • Each tab's close button is now always visible, rather than fading in when the
    pointer happens to be over the tab. Closing a tab used to mean aiming at it,
    waiting for the button to appear, then aiming again. Tab widths are unchanged —
    the button always occupied that space, it was simply invisible.

What's Changed

  • Liquid Glass increment 4: chrome bars, plus 40 images that never shipped by @sdenike in #14

Full Changelog: v3.0.0-revived.20...v3.0.0-revived.21

TextMate 3.0.0-revived.20

Choose a tag to compare

@github-actions github-actions released this 15 Aug 03:16
4cb82ff

2026-08-14 (v3.0.0-revived.20)

The first surface to adopt macOS 26's Liquid Glass material.

Changed

  • The key equivalent recorder — the field that records a shortcut in the Bundle
    Item Chooser (⌃⌘T, when you search by key equivalent) — now draws its
    background with the system's glass material instead of painting its own border
    and fill. Its focus ring follows the new rounded outline, and its colours come
    from the system rather than from hardcoded greys.

    This is a deliberately small first step. The surfaces you look at constantly —
    the status bar, the file browser's header, the choosers and the tab bar — come
    in later releases.

What's Changed

  • Liquid Glass increment 2: key equivalent recorder on glass by @sdenike in #13

Full Changelog: v3.0.0-revived.19...v3.0.0-revived.20

TextMate 3.0.0-revived.19

Choose a tag to compare

@github-actions github-actions released this 14 Aug 20:06
4e3fb44

2026-08-14 (v3.0.0-revived.19)

Changed

  • The About window no longer shows a background image. The one it had came from
    a different fork of TextMate and was never this project's artwork; the window
    now uses your theme's own colours.

What's Changed

  • Phase 6 foundation: Liquid Glass constructors — and two repo-wide build fixes by @sdenike in #12

Full Changelog: v3.0.0-revived.18...v3.0.0-revived.19