Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

A Coda Plugin Skeleton for writing Cocoa plugins in Python, ripped from the bowels of Ian Beck's TEA for Coda.

branch: master

Fetching latest commit…

Octocat-spinner-32-eaf2f5

Cannot retrieve the latest commit at this time

Octocat-spinner-32 src
Octocat-spinner-32 .gitignore
Octocat-spinner-32 CodaPlugin.py
Octocat-spinner-32 README.markdown
Octocat-spinner-32 setup.py
README.markdown

Coda Plugin Skeleton

Coda Plugin Skeleton is a poorly named framework for writing Cocoa plugins for Coda using Python.

The skeleton is essentially the gutted remains of Ian Beck's excellent TEA for Coda plugin. It provides a PyObjC bridge to the Cocoa plugin API, along with several convenience functions for dealing with text manipulation, menu generation, etc.

Building from source

In order to get anything useful out of Coda Plugin Skeleton, you will need to download and build the source:

git clone git://github.com/bobthecow/coda-plugin.git
cd coda-plugin
python setup.py py2app

If you wish to create a development version, you can run this instead:

python setup.py py2app -A

This will create a normal version of your Coda plugin, but symlink all the internal files so that you don't have to rebuild the plugin to try out changes (you'll still need to relaunch Coda between changes, though).

Now go build something cool

  1. Edit setup.py, enter your sweet new plugin name and details.

  2. Open CodaPlugin.py and rename the class inside. Because Coda doesn't run plugins in a sandbox, this class name can't be the same as any other plugin. Be sure to change the plugin_name member variable while you're in there.

  3. Edit src/Contents/Resources/English.lproj/PluginActions.plist to add your actions.

  4. Add corresponding action scripts to src/Support/Scripts. If your plugin needs additional libraries, drop them in src/Library and they'll be automatically included.

Something went wrong with that request. Please try again.