Skip to content

Remove the SyntaxMate XPC service - #40

Merged
dayglojesus merged 1 commit into
mainfrom
chore/remove-syntaxmate
Aug 22, 2026
Merged

Remove the SyntaxMate XPC service#40
dayglojesus merged 1 commit into
mainfrom
chore/remove-syntaxmate

Conversation

@dayglojesus

@dayglojesus dayglojesus commented Aug 22, 2026

Copy link
Copy Markdown
Collaborator

Removes the SyntaxMate XPC service, at the request of its author.

Why

SyntaxMate is an XPC service that hands a syntax-highlighted NSAttributedString back to a calling application. Vadim Shpakovski contributed it in 2016 and asked for its removal in 2023 (textmate#1462):

Hi Team, this tool is not embedded into the main app and did not find a use as we expected. We should probably remove it.

That PR is still open upstream. This applies his commit to our fork, authorship preserved.

I checked the state of it here before agreeing:

  • Nothing references it. No other rave target requires it, no in-tree caller mentions it, and it is not embedded in TextMate.app.
  • CI never compiles it. build-and-test.yml and release.yml both run ninja TextMate, which does not reach the SyntaxMate target. It could have been broken for years without anyone noticing.
  • Its submodule is a dead dependency. Applications/SyntaxMate/resources/SyntaxMate.tmBundle points at shpakovski/syntaxmate.tmbundle, archived since 2016-11-13. It still resolves today, but it is an unowned single point of failure in every recursive clone — the same failure mode that currently makes textmate#1469 unbuildable for anyone but its author.
  • 4.6 MB and 235 .tmLanguage files in every clone, for a target nobody builds.
  • SyntaxMateImpl.mm uses initForReadingWithData:, deprecated since macOS 10.14.

In fairness to the other side: it does still build. ninja SyntaxMate completes and signs SyntaxMate.xpc cleanly on macOS 26.5 / Xcode 26.4. This is not bitrot — it is a working component with no consumer, kept alive by luck rather than by CI. If we ever want a third-party integration surface again, the code is recoverable from history, and it would need to come back with CI coverage and vendored grammars rather than an archived submodule.

What

 .gitmodules                                        |   3 -
 Applications/SyntaxMate/Info.plist                 |  25 -
 Applications/SyntaxMate/default.rave               |  11 -
 Applications/SyntaxMate/resources/Default.tmProperties |   8 -
 Applications/SyntaxMate/resources/SyntaxMate.tmBundle  |   1 -
 Applications/SyntaxMate/src/SyntaxMate.h           |  41 -
 Applications/SyntaxMate/src/SyntaxMateImpl.h       |   7 -
 Applications/SyntaxMate/src/SyntaxMateImpl.mm      | 129 -
 Applications/SyntaxMate/src/main.mm                |  57 -

This drops our submodule count from 7 to 6.

Verification

macOS 26.5, Xcode 26.4.

  • grep -rn SyntaxMate across *.rave, *.yml, *.md and all sources: no dangling references.
  • After ./configure, SyntaxMate is no longer a ninja target (was 6: SyntaxMate, /debug, /release, /run, …).
  • ninja TextMate — exit 0, clean.
  • Fresh clone of this branch + git submodule update --init --recursive — exit 0, six submodules, no Applications/SyntaxMate. This is the check that matters for a submodule removal, and it is the one that would have caught the broken pins in My take on modernizing TextMate textmate/textmate#1469.

(cherry picked from commit 8c0dae1)
@dayglojesus
dayglojesus merged commit d443e93 into main Aug 22, 2026
2 checks passed
@dayglojesus
dayglojesus deleted the chore/remove-syntaxmate branch August 22, 2026 03:29
@dayglojesus dayglojesus mentioned this pull request Aug 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant