[TxMt] Extending Markdown bundle (newbie)?
Ramon M. Felciano @ Yahoo
felciano at yahoo.com
Mon Nov 5 05:50:53 UTC 2007
Hi --
I'm trying to develop a new language syntax for project management, note
taking and task management around GTD. I've been using Markdown but
would like to integrate some of the task features of the GTD2 bundle as
well as some project reporting scripts. Rather than develop this as a
completely distinct language, I'd like to simply extend the Markdown
bundle, based on special casing more specific syntactic matches of
existing Markdown syntax. For example, where Markdown recognizes:
- my colleague
as an unordered list, I'd like to extend it to recognize:
- @call my colleague
as a todo item, with a phone call context. This allows specialized todo
items to be spread throughout a project document, then extracted, rolled
up, etc using reporting scripts.
This is my first attempt at bundle development, so I'm trying to figure
the cleanest way to do this type of language extension. I've read the
various docs and blog entries on language syntax and contexts, as well
as http://wiki.macromates.com/Main/Howtos#bundleExtension, which is on
target but lacks some detail. In particular:
1. How do you override or specialize certain syntactic patterns from a
base language? The language docs show how to use "include" to reference
a whole separate grammar, but I think what I'm looking for is to
override only a single grammar rule. In the above example, should I copy
the "unordered list" pattern from the Markdown plist file and use a
modified version in the new language file? Or is there a way to
"subclass" the syntax w/out this copy-paste model by including only the
one rule?
2. Are there restrictions on the file suffixes for this new language?
Should the new language share the same file suffix as the original, or
come up with a different one?
Any pointers to sample code or even bundles that already do this type of
extension would be greatly appreciated.
Thanks!
Ramon
More information about the textmate
mailing list