-=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- (c) WidthPadding Industries 1987 0|610|0 -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=-
SoCoder -> Showcase Home -> Apps and Utilities

Created : 18 February 2014
Edited : 18 February 2014
System : Mac
Language : Objective-C


Color scheme editor for Sublime Text and TextMate 2 color schemes (tmTheme files).

Prebuilt Binaries
GitHub Repository
Schemer, like the short description says, is a color scheme editor for Sublime Text and TextMate 2 color schemes, both of which are inherited from the original TextMate. It's intended to fill the gap on OS X since there's no native UI for editing them and the alternative is modifying the XML property lists by hand or opening Chrome and navigating to a web app that doesn't let you modify the file in place and see the changes in Sublime Text itself as you save the changes. I don't like web apps and I don't like editing XML by hand, so writing an app was easier.

Schemer's written in Obj-C, the source code is all available from the get-go on GitHub as well. There are binary packages, though they may not always be the latest version (the version up now is currently the latest — I also don't retain old versions since the repo's there and you can build them yourself).

The majority of the app is just a bunch of key-value observing and stuff for handling the tableview, so it's fairly simple and should be easily modifiable by anyone wanting to customize it. The code itself is also fairly simple, aside from the NSFilters categories I wrote, which are black magic and you should not attempt to tweak those unless you fully understand how to manually handle retain counts in an ARC project. On the upside, the NSFilters categories are very easy to use and I highly recommend making use of them to simplify working with collections.

Latest Update

See the commit log for revisions.